Geo*_*ins 50
不,常数是不变的.
参考:php.net/manual/language.constants.php
Pat*_*eil 24
我知道这场比赛已经晚了......但这里有一件事可能对某些人有所帮助......
在我的"Application.php"文件中(我定义了所有常量并包含在我的所有脚本中),我执行以下操作:
if( !defined( "LOGGER_ENABLED" )){
define( "LOGGER_ENABLED", true );
}
Run Code Online (Sandbox Code Playgroud)
所以通常情况下,每个脚本都会启用日志记录...但是如果在一个特定的脚本中我不想要这种行为,我可以在包含我的Application.php之前执行此操作:
define( "LOGGER_ENABLED", false );
Run Code Online (Sandbox Code Playgroud)
Nil*_*ton 15
如果您绝对需要这样做(虽然我不会像其他人所说的那样推荐它),您可以随时使用Runkit.
http://www.php.net/manual/en/function.runkit-constant-redefine.php
http://www.php.net/manual/en/function.runkit-constant-remove.php
Col*_*lin 10
不会.定义常量后,永远不会更改或未定义.
其他海报是正确的 - 你不能这样做。但也许您可以将定义转移到知道常数的最佳值的程度。
也许您正在一个大列表中定义常量:
define('STRING1','Foo');
define('STRING2', 'Bar');
define('STRING3', 'Baz');
Run Code Online (Sandbox Code Playgroud)
一旦发现某种情况,您就想更改 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');
}
Run Code Online (Sandbox Code Playgroud)
逻辑设置 STRING2 甚至可以在稍后的处理中位于不同的文件中。
| 归档时间: |
|
| 查看次数: |
52923 次 |
| 最近记录: |