display_errors和error_reporting的赋值方法
1)直接在 php.ini中修改
display_errors = On
error_reporting = E_ALL
error_reporting 的取值范围如下:
1 E_ERROR
2 E_WARNING
4 E_PARSE
8 E_NOTICE
16 E_CORE_ERROR
32 E_CORE_WARNING
64 E_COMPILE_ERROR
128 E_COMPILE_WARNING
256 E_USER_ERROR
512 E_USER_WARNING
1024 E_USER_NOTICE
2047 E_ALL
2048 E_STRICT
E_WARNING 通常都会显示出来,但不会中断程式的执行。这对除错很有效。例如:用有问题的常规表示法呼叫 ereg()。
E_ERROR 通常会显示出来,亦会中断程式执行。意即用这个遮罩无法追查到记忆体配置或其它的错误。
E_PARSE 从语法中剖析错误。
E_CORE_ERROR 类似 E_ERROR,但不包括 PHP 核心造成的错误。
E_CORE_WARNING 类似 E_WARNING,但不包括 PHP 核心错误警告。
自己做了一个小小的尝试:
error_reporting = ~E_ALL & ~E_RECOVERABLE_ERROR & ~E_WARNING & ~E_PARSE & ~E_NOTICE & ~E_STRICT & ~E_CORE_ERROR & ~E_CORE_WARNING & ~E_COMPILE_ERROR & ~E_COMPILE_WARNING & ~E_USER_ERROR& ~E_USER_WARNING & ~E_USER_NOTICE & ~E_DEPRECATED & ~E_USER_DEPRECATED
结果在phpinfo()中看到 error_reporting值为-32768
2)可以在应用目录下建立一个 .htaccess 文件,内容如下:
php_flag display_errors Off
php_value error_reporting 0 (表示任何错误和提示都不会显示)
3) 也可以直接在代码中赋值
error_reporting(E_ALL);
ini_set( 'display_errors', 'On' );
error_reporting(0);
ini_set( 'display_errors', 'Off' );