使用PHP CLI进行Linting不会显示错误,但会让您知道存在错误


Linting with PHP CLI does not display errors but does let you know there is one

PHP linter(php -l)确实知道Windos上CLI中的显示错误。

C:'websites'Project>"'Program Files (x86)'PHP5.3'php.exe" -l test.php
Errors parsing test.php

但不显示错误消息。

我打开了两个:

error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', 'on');

幸运的是,我能够在我的日志中找到它:

C:'WINDOWS'temp'php-errors.log
Error:
    [03-Jan-2016 16:24:24 America/New_York] PHP Parse error:  syntax error, unexpected '[', expecting ')' in test.php on line 3

PS。这就是为什么错误没有显示

错误是:我使用了$var = [1];而不是$var = array(1);

这是故意的,我试图弄清楚为什么CLI php -l不适用于其他项目,所以我使用了一个测试文件作为控件。

您需要在命令行上将变量display_errors定义为"on"或"1"。

方法是使用php命令行解释器的-d选项。

例如:

php -l -d display_errors=1 test.php

php -l -d display_errors=On test.php