我编写了 php 脚本并通过终端进行语法检查php -l my_filepath
,然后突然发现致命错误,PHP Fatal error: Cannot redeclare
即使我的代码执行成功。
还使用相同的脚本检查其他系统,但是它显示了No syntax errors detected
,所以我错在哪里。
常见函数帮助器.php
<?php
function hex2bin() {
// code here
}
检查终端中的语法错误后
$ php -l application/helpers/common_functions_helper.php
PHP Fatal error: Cannot redeclare hex2bin() in application/helpers/common_functions_helper.php on line 1013
Errors parsing application/helpers/common_functions_helper.php
即使函数没有在整个代码库的任何地方重新声明
答案1
hex2bin
PHP 库函数是否适用于 PHP >= 5.4.0:http://php.net/manual/en/function.hex2bin.php. 选择另一个名字。
答案2
由于在回复时没有发布代码,我们在这里做一些假设,并注意php -l在执行 php 脚本时查看整个文件,在某些情况下仅当执行导致错误的相应语句时才可能报告运行时错误。
例如,如果你重新申报的是如果-statement 然后执行 php 脚本可能不会导致错误,如果代码流没有经过如果声明(例如,如果有包括)
建议是查找并查看导致错误的行号并修复它,因为即使您在执行环境和实例中执行脚本时没有看到它,问题仍然存在。
此外,因为这种错误可能在以下情况下很常见:包括' 已使用,您可以使用 '包含一次' 代替 '包括' 问题可能就解决了。