0

基本上, php -l 不会检测到任何语法错误,给出以下代码:

<?php
date®;
?>

很明显,执行的时候会报错。

是否有任何替代或额外的 linter 可用于 PHP?

编辑:

非常感谢你们。显然它一个有效的常量名称,正如文档所建议的那样 ([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)。

4

2 回答 2

3

它只会出错,因为您没有 date® 的常量定义

如果在包含您的测试文件之前的另一个脚本文件中的某个位置,您有:

define('date®','Value');

这将是有效的(尽管毫无意义)并且可以正常运行

所以在语法上这个文件是有效的,并且 lint 检查适当地报告它

于 2012-06-08T08:50:40.070 回答
0

您正在寻找的是php_check_syntax(http://php.net/manual/en/function.php-check-syntax.php)。

让我纠正我的答案。它不会将后一个代码检测为错误(如注释中所述,这不是错误代码)。但是,如果您想检查文件是否有错误,您应该坚持使用后一个功能。

于 2012-06-08T08:47:00.133 回答