![]() |
Не может найти константу в функции
Имеется функция:
Код:
function hwGetExtraOptions( )Получаю сообщение об ошибке: Цитата:
Проблема в строке: Код:
if ( defined( "ADMIN_AREA" ) || constant( "EN_AD_{$k}" ) )Какие будут соображения по устранению? |
А они вообще задефинены? Если нет то все правильно :)
|
Цитата:
Ругается на это место: Цитата:
Цитата:
|
попробуй что-ли так
Код:
if ( defined( "ADMIN_AREA" ) || @constant( "EN_AD_{$k}" ) ) |
Если они задефинены, то странновато это :)
Да и зачем используется такая конструкция? Цитата:
|
Ну так поэтому в операторе If оно и используется. Я дал вариант, чтоб не выдавалась ошибка, если константа не задефинена.
etc, а как по-другому в названии константы ты будешь использовать $k? |
Что если применить тот же defined ?
Цитата:
|
Смотри. К примеру дано такое:
Код:
define("CONST_ONE", 0);Код:
var_dump(defined("CONST_ONE"));Далее пробуем Код:
var_dump((bool)constant("CONST_ONE"));Ну а последняя строчка вернёт bool(true) и выражение выполнится, так как значение константы положительно. |
в случае нуля с моим примером можно вообще не дефинить :)
|
NOmeR1, ошибки надо не скрывать, а исправлять :)
|
Решение - задефинить константы en_ad_0, en_ad_1, en_ad_2, en_ad_3. Какими значениями - не знаю, т.к. какую роль эти константы играют - не написано.
|
NOmeR1,
наверное, ты прав. поставил Код:
if ( defined( "ADMIN_AREA" ) || @constant( "EN_AD_{$k}" ) )Благодарю за помощь! |
Учти, что это лишь способ убрать предупреждения, но не решить проблему. :) В твоем случае получается что второе условие вообще не работает.
|
PHP код:
|
NOmeR1, нельзя новичкам да и вообще никому писать посты как #4, потому что этим самым ты учишь скрывать ошибки, а как я сказал, их надо исправлять...
Пост #12 сделал вывод =( |
Ой ну чего ты приепался? Только что повторил свой предыдущий пост в этой теме.
Вообще, я дал вполне логичный выход. Я на примере объяснил в посте #8. Если не задефинена константа, то условие @constant( "EN_AD_{$k}" ) вернёт false, то же самое что и если бы константа была задефинена и значение у неё было нулевое. В операторе IF так же используется условие defined( "ADMIN_AREA" ) - а это скорее всего значит, что константа ADMIN_AREA может быть задефинена, либо нет. Поэтому я считаю, что и константы EN_AD_0, EN_AD_1, EN_AD_2, EN_AD_3 тоже могут быть не задефинены, а это как раз и создаёт ошибки! |
| Время: 19:44 |