PHP: как избежать повторного объявления функций?

Я, как правило, получаю ошибки, такие как:

неустранимая ошибка: не удается повторно объявить get_raw_data_list () (ранее объявленный в /var/www/codes/handlers/make_a_thread / get_raw_data_list.php: 7) in /var/www/коды/обработчики/make_a_thread/get_raw_data_list.php on line 19

Как я могу избежать этой ошибки? Можно ли создать предложение IF, чтобы проверить, объявлена ли функция перед ее объявлением?

4 ответов


использовать require_once или include_once в противоположность include или require при включении файлов, содержащих ваши функции.

на _once братья и сестры include и require заставит PHP проверить, был ли файл уже включен / необходим, и если да, то не include/require это снова, тем самым предотвращая ' не удается переопределить функцию x...'.


if(!function_exists("get_raw_data_list")) {
... define function here ...
}

http://us.php.net/function_exists


"function_exists " сообщит вам, если функция уже объявлена. Хотя я подозреваю, что у вас есть проблема с включением файлов более одного раза. Когда вы включаете файл, вы используете require_once или include_once или просто require / include?


Если вы имеете дело с классами method_exists() может быть то, что вы ищете:

if(!method_exists(__CLASS__, 'function_name')){
    function function_name(){

    }
}

Это проверит текущий класс, чтобы сделать эту функцию function_name не существует, прежде чем пытаться объявить его