如何在 foreach 循环中设置变量以在 PHP 中进行外部访问?
Posted
技术标签:
【中文标题】如何在 foreach 循环中设置变量以在 PHP 中进行外部访问?【英文标题】:How to set variables inside a foreach loop for outside access in PHP? 【发布时间】:2013-11-29 15:56:01 【问题描述】:如果我有一个数组
$places = array('year' => '2012', 'place' => 'school');
有没有办法在 php 中做到这一点
foreach ($places as $key => $value)
$key = $value
但是要根据键名设置变量。
例如,变量可以像这样使用
echo $year;
2012
echo $place;
school
【问题讨论】:
您使事情变得复杂,因为您可以直接通过键调用它。例如echo $places['year']
或$year = $places['year']
所以一般不鼓励这种做法?我认为我会尝试这样做的原因是因为我有一个相当长的函数,我宁愿只引用名称较短的变量,而不必一直键入数组键和值。
除非你的数组是多维数组,尽量保持简单,就像我说的你可以使用$year = $places['year']
或者下面的答案是extract()
我自己会打电话给extract
“通常不鼓励”。
【参考方案1】:
使用提取
extract($places)
echo $year;
echo $place;
或者,您可以使用变量变量:
foreach ($places as $key => $value)
$$key = $value //note the $$
【讨论】:
【参考方案2】:为什么你不能这样做呢?
<?php
$places = array('year' => '2012', 'place' => 'school');
echo $places['year'];// prints 2012 This is also synonymous to a variable
AFAIK,你只是让你的例子复杂化了。
【讨论】:
以上是关于如何在 foreach 循环中设置变量以在 PHP 中进行外部访问?的主要内容,如果未能解决你的问题,请参考以下文章
我们如何在 laravel php 刀片模板中为 foreach 循环定义循环变量