константа уже определена в php

У меня есть функция, которую я пытаюсь запустить, но она показывает сообщение как уже определенное CONSTANT.

Я попытался поставить условие, говорящее «если определено» о функции, но все равно ничего. Есть ли способ игнорировать это и увидеть результат?


person JDesigns    schedule 04.05.2011    source источник
comment
Не могли бы вы предоставить код? Кроме того, у вас есть файлы included?   -  person eykanal    schedule 04.05.2011
comment
Можете ли вы показать нам код, пожалуйста?   -  person James C    schedule 04.05.2011
comment
на самом деле это связано с несколькими вещами, и в сообщении об ошибке я вижу константу... в 3-4 файлах (это похоже на файл настроек). я не уверен, какой код я могу предоставить, так как их много..   -  person JDesigns    schedule 04.05.2011
comment
Убедитесь, что вы используете if( defined('NAME') ) вместо if( defined(NAME) )   -  person Robik    schedule 04.05.2011
comment
как называется функция? ты пробовал менять?   -  person Cristian    schedule 04.05.2011


Ответы (3)


Замените это:

define('constant', 'value');

с этим:

if (!defined('constant')) define('constant', 'value');
person OZ_    schedule 04.05.2011
comment
Моя IDE любит делать это не одной строкой, поэтому я закоротил ее !defined('constant') && define('constant', 'value'); - person Brian Leishman; 11.07.2017
comment
Это немного элегантнее: defined('constant') or define('constant', 'value'); - person sieppl; 18.08.2017

определить()

Пример:

/* Note the use of quotes, this is important.  This example is checking
 * if the string 'TEST' is the name of a constant named TEST */
if (defined('TEST')) {
    echo TEST;
}
person Phill Pafford    schedule 04.05.2011

Вот как вы проверяете константы:

if (defined('TEST')) {
    echo TEST;
}

Возможно, вы не выполняете проверку должным образом ИЛИ константа, которую вы проверяете, не является причиной ошибки, какой-то мошеннический включаемый файл может иметь другую константу и приводит к перекрытию/переопределению.

person Jakub    schedule 04.05.2011