Подтвердить что ты не робот

Можете ли вы определить или изменить константу в PHP?

Можете ли вы определить или изменить константу в PHP?

4b9b3361

Ответ 2

Я знаю, что это уже поздно в игре... но вот одна вещь, которая может помочь некоторым людям...

В моем файле "Application.php" (где я определяю все мои константы и включаю во все мои скрипты), я делаю что-то вроде этого:

if( !defined( "LOGGER_ENABLED" )){
define( "LOGGER_ENABLED", true );
}

Итак, каждый script собирается активировать ведение журнала... но если в ОДНОМ конкретном script я не хочу этого поведения, я могу просто сделать это ПЕРЕД тем, как я включу свой Application.php:

define( "LOGGER_ENABLED", false );

Ответ 4

Нет. Как только константа определена, она никогда не может быть изменена или undefined.

Ответ 5

Другие плакаты верны - вы не можете этого сделать. Но, возможно, вы можете перенести свое определение так, чтобы вы знали, что будет лучшим значением для константы.

Возможно, вы определяете константы в большом списке:

define('STRING1','Foo');
define('STRING2', 'Bar');
define('STRING3', 'Baz'); 

и вы хотите изменить значение STRING2 после обнаружения условия. Один из способов - отложить определение до тех пор, пока вы не узнаете правильную настройку.

define('STRING1','Foo');
// define('STRING2', 'Bar');  -- wait until initialization
define('STRING3', 'Baz');

...


if (condition) { 
   define('STRING2', 'Bar type 2');
} else {
   define('STRING2', 'Bar type 1');
}

Логическая установка STRING2 может быть даже в другом файле, позже в процессе обработки.

Ответ 6

Как не упоминается в другом месте, расширение uopz позволяет константу удалять через uopz_undefine(), для PHP 5.4 +.