那么,PHP是不愚蠢的。如果PHP说你重新声明了一个函数,那么你就是。当函数定义出现多次,PHP将抛出一个致命错误,类似下面的一个:
Fatal error: Cannot redeclare logToFile() (previously declared in /path/to/script:X) in /path/to/script on line Y
这里,X是你最初声明的功能就行了,Y是在您试图重-declare(不是请致电,如您在问题中所述)的功能。检查你的代码找到这条线,并将其删除。
,避免这样的错误,你可以先检查功能是否被定义使用function_exists()
,然后尝试将它声明:
if (!function_exists('logToFile')) {
function logToFile($msg) {
$filename = "log.txt";
$fd = fopen($filename, "a");
$str = "[" . date("Y/m/d h:i:s", mktime()) . "] " . $msg;
fwrite($fd, $str . "\n");
fclose($fd);
}
} else {
echo 'Trying to re-declare the function';
}
虽然上述方法将帮助您避免致命的错误,我强烈建议你找出你正在重新定义函数的位置并改正它。大多数情况下,这将归因于包含您的函数的文件的多个包含。在这种情况下,您可以简单地使用require_once()
代替。 PHP将检查文件是否已包含在内,如果是,则不包括(需要)它。
你是否有一个右括号? 这个功能是不是在课堂上秘密的?它是在同一个文件中声明还是包含该文件? – CompuChip
也许你包含了你的函数不止一次的文件? – putvande
如果PHP说你是在重新宣布它,那么你这样做!尝试更改函数名称并查看它是否有效。 –