-2

我希望能够从数组中生成一些常量。所以是这样的:

foreach ($array as $key => $value) {
    define($key,$value);
}

有没有一种简单的方法可以做到这一点?

4

4 回答 4

0

您已经在代码中执行此操作。或者你的意思是这样的?

$array = array("sparkles" => "pretty");

foreach($array as $key=>$value) {
    ${$key} = $value;
}

echo $sparkles; //pretty
于 2013-02-08T19:43:53.473 回答
0

另一种方法是,如果您要定义许多常量并安装了 APC:

$constants = array(
    'ONE'   => 1,
    'TWO'   => 2,
    'THREE' => 3,
);
apc_define_constants('numbers', $constants);

(来自的直接示例apc_define_constants


编辑:关于性能的有趣读物

于 2013-02-08T19:51:24.217 回答
0

假设 PHP 5.3 或更高版本,您可以这样做:

array_walk($array, function ($value, $key) { 
    define($key, $value);
});

或者

array_walk(array_flip($array), 'define');

但老实说,我只会使用您当前的方法。

于 2013-02-08T19:52:49.037 回答
-1

您也可以尝试使用extract功能。它产生的结果(几乎)与 njk 的答案相同

见: http: //php.net/manual/en/function.extract.php

于 2013-02-08T19:48:33.997 回答