我在 php.ini 中激活了 E_NOTICE。它仍然没有警告我未分配的值,例如
$foo++;
也尝试设置 error_reporting。不工作。error_reporting() 设置为 6143,这意味着激活了 E_NOTICE。此代码段还通过通知警告我:
$foo = bar;
有任何想法吗?
我在 php.ini 中激活了 E_NOTICE。它仍然没有警告我未分配的值,例如
$foo++;
也尝试设置 error_reporting。不工作。error_reporting() 设置为 6143,这意味着激活了 E_NOTICE。此代码段还通过通知警告我:
$foo = bar;
有任何想法吗?
这应该会导致错误消息。可能是因为注册了一个错误地吞下所有错误的错误处理程序?如
function error_handler($error_number /*, ... */) {
// do stuff...
return true;
}
更改文件 php.ini 后。您应该重新启动 php/apache 服务。
它适用于我的 PHP 版本 5.2.8
注意:未定义的变量:foo
<?php
error_reporting(E_ALL | E_NOTICE); // Also works with 6143
$foo++;
?>
如 PHP 手册中所述,您还可以在脚本中设置它们(http://php.net/manual/en/function.ini-set.php#refsect1-function.ini-set-examples):
if (!ini_get('display_errors')) {
ini_set('display_errors', '1');
}
因此,具有最大错误报告级别的完整错误设置可能是:
if (!ini_get('display_errors')) {
ini_set('display_errors', '1');
}
error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
$foo = bar;
将此代码放在脚本的开头,它会显示所有错误、通知和所有其他内容。