如何在 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 中进行外部访问?的主要内容,如果未能解决你的问题,请参考以下文章

如何在php中访问foreach循环之外的多个变量

为啥我不能在“foreach”循环中取消设置变量?

我们如何在 laravel php 刀片模板中为 foreach 循环定义循环变量

如何正确设置 PHP 环境变量以在 Git Bash 中运行命令

PHP - foreach循环中变量之前的&符号[重复]

php foreach循环中的变量