如何在PHP中为外部访问设置foreach循环内的变量?
如果我有一个数组如何在PHP中为外部访问设置foreach循环内的变量?,php,arrays,variables,Php,Arrays,Variables,如果我有一个数组 $places = array('year' => '2012', 'place' => 'school'); 在PHP中有什么方法可以做到这一点吗 foreach ($places as $key => $value) { $key = $value } 但是,变量是基于键的名称设置的 例如,变量将像这样可用 echo $year; 2012 echo $place; school 你为什么不能这样做 <?php $places = a
$places = array('year' => '2012', 'place' => 'school');
在PHP中有什么方法可以做到这一点吗
foreach ($places as $key => $value)
{
$key = $value
}
但是,变量是基于键的名称设置的
例如,变量将像这样可用
echo $year;
2012
echo $place;
school
你为什么不能这样做
<?php
$places = array('year' => '2012', 'place' => 'school');
echo $places['year'];// prints 2012 This is also synonymous to a variable
使用提取
extract($places)
echo $year;
echo $place;
或者,您可以使用变量:
foreach ($places as $key => $value)
{
$$key = $value //note the $$
}
你把事情弄得很复杂,因为你可以通过键直接调用它。例如echo$places['year']
或$year=$places['year']
这样的做法通常不被鼓励?我之所以想尝试这样做,是因为我有一个相当长的函数,我宁愿引用名称较短的变量,而不必一直在后面键入数组键和值。除非您的数组是多维数组,否则请尽可能简单,就像我说的,您可以使用$year=$places['year']
或者下面的答案是extract()
我自己会称extract
“一般不鼓励”。