我希望能够从数组中生成一些常量。所以是这样的:
foreach ($array as $key => $value) {
define($key,$value);
}
有没有一种简单的方法可以做到这一点?
您已经在代码中执行此操作。或者你的意思是这样的?
$array = array("sparkles" => "pretty");
foreach($array as $key=>$value) {
${$key} = $value;
}
echo $sparkles; //pretty
另一种方法是,如果您要定义许多常量并安装了 APC:
$constants = array(
'ONE' => 1,
'TWO' => 2,
'THREE' => 3,
);
apc_define_constants('numbers', $constants);
(来自的直接示例apc_define_constants
)
编辑:关于性能的有趣读物
假设 PHP 5.3 或更高版本,您可以这样做:
array_walk($array, function ($value, $key) {
define($key, $value);
});
或者
array_walk(array_flip($array), 'define');
但老实说,我只会使用您当前的方法。
您也可以尝试使用extract
功能。它产生的结果(几乎)与 njk 的答案相同