【发布时间】:2011-06-22 10:30:09
【问题描述】:
假设我有一个数组,像这样:
$foo = array('first' => '1st',
'second' => '2nd',
'third' => '3rd');
如何从数组中选择键并将它们设为自己的变量?
例如,数组$foo 将变为:
$first = '1st';
$second = '2nd';
$third = '3rd';
我问这个是因为我正在创建一个 MVC 框架来帮助我的 OOP,我希望用户将一个变量传递给视图加载函数,这将允许用户在模板中使用变量而无需知道数组叫什么。
例如:
$array = array('title' => 'My blog!' [...]);
$this->load->view('view.php', $array);
view.php:
echo $title;
输出:
我的博客!
【问题讨论】:
-
P.S.示例来自codeIgniter 对
-
这与问题无关。在其他一些情况下,如果您有较小的具有相同顺序的值数组,您还可以通过 list() 分配它们,这对 IDE 更友好。
$info = array('coffee', 'brown', 'caffeine'); list($drink, $color, $power) = $info; -
用新变量中的冗余数据使全局范围膨胀并没有真正的好处。只需在您想使用
$title的每个地方使用$array['title']。使用extract()或可变变量通常表示编码设计欠佳。当这些技术对您的代码有吸引力时,通常是重新考虑的时候了。