Неустранимая ошибка 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", и проблема может быть решена.

Другие вопросы по тегам