Der*_*iel 46 php arrays variables
假设我有一个数组,如下所示:
$foo = array('first' => '1st',
'second' => '2nd',
'third' => '3rd');
Run Code Online (Sandbox Code Playgroud)
如何从数组中选择键并使它们成为自己的变量?例如,数组$foo
将变为:
$first = '1st';
$second = '2nd';
$third = '3rd';
Run Code Online (Sandbox Code Playgroud)
我问这个因为我正在创建一个MVC框架来帮助我的OOP,我希望用户将一个变量传递给View加载函数,这将允许用户在模板中使用变量而不必知道数组是什么被称为.
例如:
$array = array('title' => 'My blog!' [...]);
$this->load->view('view.php', $array);
Run Code Online (Sandbox Code Playgroud)
view.php:
echo $title;
Run Code Online (Sandbox Code Playgroud)
输出:
我的博客!
小智 122
<?php extract($array); ?>
Run Code Online (Sandbox Code Playgroud)
http://php.net/manual/en/function.extract.php
xil*_*il3 24
你可以这样做:
foreach($foo as $k => $v) {
$$k = $v;
}
Run Code Online (Sandbox Code Playgroud)
一个简单的方法是使用变量变量:
foreach($foo as $key => $value) {
$$key = $value;
}
echo $first; // '1st'
Run Code Online (Sandbox Code Playgroud)
但请注意,这通常是不鼓励的.最好更改模板系统以允许变量在模板中作用域.否则你可能会遇到碰撞问题,必须测试它们的存在等.