Неустранимая ошибка PHP: невозможно переопределить [используя php -l в терминале]
Я написал скрипт php и пошел на проверку синтаксиса через терминал php -l my_filepath
потом вдруг обнаружил фатальную ошибку PHP Fatal error: Cannot redeclare
даже мой код успешно выполняется.
также проверьте на другой системе с тем же сценарием, но это шоу No syntax errors detected
Итак, где я иду не так.
common_functions_helper.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
даже если функция не объявляется повторно где-либо в кодовой базе
2 ответа
hex2bin
функция PHP доступна для PHP> = 5.4.0: http://php.net/manual/en/function.hex2bin.php. Выберите другое имя.
Поскольку во время этого ответа код не был опубликован, давайте сделаем некоторые допущения здесь и отметим, что php -l просматривает весь файл, в то время как выполнение сценария php в случаях может сообщать об ошибке времени выполнения только в том случае, если соответствующий оператор вызывает ошибку выполнен.
Например, если то, что вы переделываете, находится в if- состоянии, то выполнение сценария php может не привести к ошибке, если поток кода не проходит через код в операторе if (например, если есть include)
Было бы предложено найти и посмотреть номера строк, вызывающих ошибку, и исправить ее, потому что проблема существует, даже если вы не видите ее при выполнении сценария в среде и экземпляре, который вы сделали.
Кроме того, поскольку эта ошибка может быть распространена при использовании "include", вы можете использовать "include_once" вместо "include", и проблема может быть решена.