我将首先写下我确实看到了类似的问题,并且我确实尝试了建议的解决方案。
我正在运行一个 cli,当我故意在 php 文件中放置解析错误时,我在 stdOut 中没有收到任何错误。
我正在使用以下配置:
22527 表示 error_reporting IS
ini_set('error_reporting', E_ALL|E_STRICT);
PHP 5.5.20 (cli) (built: Jan 9 2015 11:20:56)
php -i | grep error
display_errors => STDOUT => STDOUT
display_startup_errors => Off => Off
error_append_string => no value => no value
error_log => no value => no value
error_prepend_string => no value => no value
error_reporting => 22527 => 22527
html_errors => Off => Off
ignore_repeated_errors => Off => Off
log_errors => Off => Off
log_errors_max_len => 1024 => 1024
track_errors => Off => Off
xmlrpc_error_number => 0 => 0
xmlrpc_errors => Off => Off
补充:如果我添加自己的致命处理程序:
function fatal_handler() {
$error = error_get_last();
if ($error !== null) {
echo ("'n'nERROR occured!'nFile [{$error['file']}].'nLine: [{$error['line']}].'nMessage: [{$error['message']}]'n'n");
}
exit(1);
}
register_shutdown_function("fatal_handler");
我确实看到了 stdio 中的错误。
下面是一个不会为我产生错误的代码示例(带有解析错误(
class A{
const AAA = 'aaa';
static public function Result(A::AAA){
}
}
error_reporting => 22527 => 22527
相当于E_ALL & ~E_DEPRECATED & ~E_STRICT
。
使用-1
或E_ALL
错误级别(PHP 5.4 中E_ALL | E_STRICT
(显示所有错误。
在 ini 文件中设置它 php.ini
.
error_reporting = -1
以下内容不起作用,因为代码包含解析错误,因此永远不会调用ini_set()
。
<?php
ini_set('error_reporting', -1)
class A
{
const AAA = 'aaa';
static public function Result(A::AAA)
{
}
}