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

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

Solutions Collecting From Web of "Можете ли вы определить или изменить константу в PHP?"

Нет. Константы постоянны .

Ссылка: php.net/manual/language.constants.php

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

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

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

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

 define( "LOGGER_ENABLED", false ); 

Если вам абсолютно необходимо это сделать (хотя я бы не рекомендовал его, как утверждали другие), вы всегда можете использовать Runkit.

http://www.php.net/manual/en/function.runkit-constant-redefine.php

http://www.php.net/manual/en/function.runkit-constant-remove.php

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

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

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

 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 может быть даже в другом файле, позже в вашей обработке.

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