E_NOTICE不会警告未分配的值

时间:2009-09-08 14:08:42

标签: php error-reporting

我在php.ini中激活了E_NOTICE。它仍然没有警告我关于未分配的值,如

$foo++;

尝试设置error_reporting。不行。 error_reporting()设置为6143,表示E_NOTICE已激活。 此代码段还通知我:

$foo = bar;

有什么想法吗?

4 个答案:

答案 0 :(得分:3)

这应该会导致错误消息。也许是因为注册错误处理程序错误地吞下所有错误?如

function error_handler($error_number  /*, ... */) {
    // do stuff...
    return true;
}

答案 1 :(得分:0)

它适用于PHP版本5.2.8

  

注意:未定义的变量:foo

<?php

error_reporting(E_ALL | E_NOTICE);  // Also works with 6143
$foo++;

?>

答案 2 :(得分:0)

改变文件php.ini后。你应该重启php / apache服务。

答案 3 :(得分:0)

如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;

将此代码放在脚本的开头,它会向您显示所有错误,通知以及所有其他错误。