基本上, php -l 不会检测到任何语法错误,给出以下代码:
<?php
date®;
?>
很明显,执行的时候会报错。
是否有任何替代或额外的 linter 可用于 PHP?
编辑:
非常感谢你们。显然它是一个有效的常量名称,正如文档所建议的那样 ([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)。
基本上, php -l 不会检测到任何语法错误,给出以下代码:
<?php
date®;
?>
很明显,执行的时候会报错。
是否有任何替代或额外的 linter 可用于 PHP?
编辑:
非常感谢你们。显然它是一个有效的常量名称,正如文档所建议的那样 ([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)。
它只会出错,因为您没有 date® 的常量定义
如果在包含您的测试文件之前的另一个脚本文件中的某个位置,您有:
define('date®','Value');
这将是有效的(尽管毫无意义)并且可以正常运行
所以在语法上这个文件是有效的,并且 lint 检查适当地报告它
您正在寻找的是php_check_syntax
(http://php.net/manual/en/function.php-check-syntax.php)。
让我纠正我的答案。它不会将后一个代码检测为错误(如注释中所述,这不是错误代码)。但是,如果您想检查文件是否有错误,您应该坚持使用后一个功能。