gpt4 book ai didi

PHP 5/7 错误类处理

转载 作者:行者123 更新时间:2023-12-03 08:12:01 25 4
gpt4 key购买 nike

我最近刚刚升级到 php7,并且在使用 try catch 升级某些应用程序时遇到了第一个问题

PHP7 现在实现了自己的错误类来处理错误,所以我拥有的旧代码:

try {
dispatcher::run(new request);
} catch (Exception $e) {
require_once APP_PATH . 'error.php';
$error = new error($e);
}

现在抛出一个错误,因为已经定义了错误类:
Cannot declare class error, because the name is already in use in [...]

现在这很容易解决,只需重命名我的错误类,但它让我想知道,有没有办法扩展 7 的错误类,并且可以与 php5 兼容?

问候...

最佳答案

短是你不应该这样做 , 因为它是 backwards incompatible改变。

长答案是肯定的,有可能,但你仍然 不应该这样做 ,因为它仍然可能导致不良行为,并且仍然可能需要对现有的 PHP 5 实现进行更改。
Error PHP 7 中的类实现了相同的 Throwable接口(interface)Exception实现。这个想法只是有一种区分方式来识别那些由 PHP 本身抛出的异常和那些由你的 PHP 代码抛出的异常。所以你在这里做什么$error = new error($e)基本上相当于$error = new Exception($e) ,这将向后兼容 PHP 5,假设您的自定义 Error类与 Throwable 兼容界面。由于你没有提供你的类实现我不能肯定地说,但一般来说,如果你还没有扩展 Exception在 PHP 5 中,我以某种方式怀疑它会是。

关于PHP 5/7 错误类处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39133676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com