【发布时间】:2014-03-06 13:28:23
【问题描述】:
是否可以在 PHP 中更改常量的值?我们希望为项目的配置文件设置合理的默认值。
目前我们正在做:
config.php:
define('WEB_ROOT', '/home/user/public_html');
config.default.php:
defined('WEB_ROOT') || define('WEB_ROOT', '/home/user/public_html');
问题在于,在某些情况下,您可能希望从“config.php”中访问某些配置默认值。例如:
config.php
define('USER_FILE_ROOT', WEB_ROOT.'/files');
配置常量的方案已经用了5年了,重写框架不是一个选项。
【问题讨论】:
-
常量应该是......好吧......constant。没有“变量常量”这样的东西。换句话说,您希望常量成为变量吗?这对我来说毫无意义。为什么不直接使用变量呢?
-
如果要更改值,请使用变量。这就是它的用途。如果你愿意,你可以在 $ALL_CAPS 中让它看起来更像全局常量
-
对动态配置使用常量是个坏主意。使用数组。
-
原来 PHP 允许“重新声明”一个常量一次,问题不在于这个想法是否好,也不是关于替代品的问题。该框架有成千上万行依赖于常量的代码。无法重写所有内容。