为什么 lint 不告诉我解析错误的行号和性质?

2022-08-30 20:19:21

我从Windows批处理文件中调用php lint,如下所示:

@echo off
for %%f in (*.php) do php -l %%f

当文件包含语法错误时,它仅输出 。有没有办法让它告诉我错误的性质是什么,以及它在哪条线上?也许是另一个开关?Errors parsing xxx.php


答案 1

如果您收到没有任何详细信息的“解析 foo.php 错误”消息,则此参数会在您运行 PHP lint 时显示错误:

php -d display_errors=1 -l foo.php

例:

[somewhere]# php -l submit.php

Errors parsing submit.php

[somewhere]# php -d display_errors=1 -l submit.php

Parse error: syntax error, unexpected T_VARIABLE in submit.php on line 226
Errors parsing submit.php

答案 2

我已经接受了查尔斯的回答,但我想我应该补充一些细节,因为我必须做一些额外的狩猎来找出该怎么做。

问题是我没有看到输出,所以我首先在相关命令的末尾添加。这仍然没有帮助,所以我意识到问题在于PHP根本没有输出stderr的东西。我去了PHP安装目录并查看了php.ini发现默认情况下,是.将其更改为,它现在工作。stderr2>&1display_errorsOffOn


推荐