我目前正在尝试了解 PHP 7 中新错误处理的行为。
在 PHP 文档中DivisionByZeroError,它指出:
当尝试将数字除以零时抛出 DivisionByZeroError。
很公平,但是当使用 / 运算符时它不会抛出 DivisionByZeroError。
在这个例子中,我希望两个错误都被捕获:
declare(strict_types=1);
function usesIntDiv(int $a, int $b) {
return intdiv($a,$b);
}
function divide(int $a, int $b) {
return $a / $b;
}
try {
echo usesIntDiv(2,0);
} catch (DivisionByZeroError $e) {
echo "Caught DivisionByZeroError!\n";
}
echo "\n";
try {
echo divide(2,0);
} catch (DivisionByZeroError $e) {
echo "Caught DivisionByZeroError!\n";
}
Run Code Online (Sandbox Code Playgroud)
相反,只有第一个被捕获:
抓住了 DivisionByZeroError!
PHP 警告:第 9 行 TypeError.php 中被零除...
为什么?还有其他类似的情况吗?我的理解是,如果您捕获,Throwable您将捕获任何可以引发的内容,这将使 PHP 错误处理更易于管理。但是在这种情况下,如果我使用/ …
我有多个 WordPress 网站。所有这些已经运行了很长时间。但是突然我的 WP 网站显示错误:
此页面无效
当我调查问题时,我在错误日志中发现了这一点:
"Uncaught Error: Call to undefined function wp() in /home/nc136xrqx05i/public_html/wp-blog-header.php:16"
and the wp-load.php file is 0.
Run Code Online (Sandbox Code Playgroud)
然后我重命名插件文件。然后网站运行,但如果我尝试从 dashbaord 的插件文件夹中安装插件,wp-load 文件再次变空并且站点关闭。
我该如何解决?