在分析错误时阻止错误报告

Error reporting is blocked on parse errors

提问人:Itay Moav -Malimovka 提问时间:2/17/2016 最后编辑:Itay Moav -Malimovka 更新时间:10/1/2016 访问量:304

问:

我将首先写下我确实看到了类似的问题,并且我确实尝试了建议的解决方案。

我正在运行一个cli,当我故意在php文件中放置一个解析错误时,我在stdOut中没有收到任何错误。
我使用以下配置:
22527 用于 error_reporting

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){

   }
}
linux 处理 错误 报告 php-5.5

评论

0赞 Alex Blex 2/17/2016
可以添加解析错误的示例吗?我在 STDERR 中收到“PHP Parse error:”,即使有 ;PHP 5.5.14 (cli)。display_errors => Off => Off
0赞 unixmiah 2/17/2016
为什么不使用 Apache 日志或错误日志来查看 PHP 错误?为什么选择 CLI?
2赞 Itay Moav -Malimovka 2/17/2016
因为我正在开发一个 CLI。
0赞 Itay Moav -Malimovka 2/17/2016
@AlexBlex查看更新
0赞 miken32 2/17/2016
你如何调用这个代码? 还是有shebang?php myfile.php

答:

0赞 Gerard Roche 10/1/2016 #1

等效于 。error_reporting => 22527 => 22527E_ALL & ~E_DEPRECATED & ~E_STRICT

使用 或 error level(在 PHP 5.4 中)显示所有错误。-1E_ALLE_ALL | E_STRICT

在 ini 文件中设置它。php.ini

error_reporting = -1

以下操作不起作用,因为代码包含分析错误,因此 never 被调用。ini_set()

<?php

ini_set('error_reporting', -1)

class A 
{
    const AAA = 'aaa';

    static public function Result(A::AAA) 
    {
    }
}