关于SO如何使用PHP的内置linter获取行号和错误消息,还有很多其他问题。我已经阅读了它们,并尝试了他们的建议,但没有任何效果。这可能是一个错误,但我想我会在对PHP项目提交错误报告之前先询问一下。
在Ubuntu 18.04系统上,我在display_errors
中将On
设置为/etc/php/7.4/cli/php.ini
。我还使用命令行参数覆盖了设置:
php -d display_errors=1 -l file_with_obvious_syntax_error.php
我得到:
Errors parsing file_with_obvious_syntax_error.php
但是没有行号或任何错误指示。
#php -v // edited out built time in output
PHP 7.4.6 (cli) ( NTS )
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.6, Copyright (c), by Zend Technologies
我已在opcache.enable_cli=0
中设置了/etc/php/7.4/cli/php.ini
,并确认(来自php --ini
)是cli客户端正在使用的配置文件。我也将stderr
重定向到stdout
,并且没有其他信息。
答案 0 :(得分:0)
@AbraCadaver在评论中提供了答案。我正在回答这个问题,以防其他人遇到这种情况,因为这种行为不直观。我将错误报告设置为报告编译错误:
error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
显然不会导致 导致PHP报告编译错误。将值设置为E_ALL
可解决此问题。