你能否在PHP中取消或更改常量?
你能否在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
不可以。一旦一个常量被定义,就无法更改或未定义。
除非另有说明,否则uopz扩展允许通过uopz_undefine()删除常量,适用于PHP 5.4+。
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');
}