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