【发布时间】:2011-06-05 23:05:58
【问题描述】:
我想知道您认为定义常量数组变量的最佳和最简洁的方式类似于 define 函数的工作方式。我在谷歌看到很多人问这个问题,到目前为止,我想出的最简单的解决方案是在 define 语句中使用 PHP serialize 函数,像这样
define ("MY_ARRAY", serialize (array ("key1" => $value1,"key2" => $value2, ..)));
然后要使用定义的常量,您可以执行以下操作:
$MY_ARRAY = unserialize (MY_ARRAY)
print_r ($MY_ARRAY);
如果您的代码中有很多 defines,不确定 serialize 功能是否会减慢您的速度。你怎么看?
【问题讨论】:
-
你需要全局变量做什么。也许有更好的方法。
-
$GLOBALS['MY_ARRAY'] = array();
-
PeeHaa,如果我想从同一命名空间中的任何类或函数中访问常量数组,我需要它是全局的!
-
dqhendricks - 您的解决方案非常有吸引力,但您不是总是在想要访问它时使用 $GLOBALS['MY_ARRAY'] 吗?另外,$GLOBALS 也是不变的吗?我认为没有!
-
$GLOBALS 是一个超级全局变量,可用于代码的每个部分,就像 $_POST 或 $_GET。虽然你是对的,但它并不是一个真正的常数。 PHP 不允许使用常量数组。
标签: php arrays constants global