【问题标题】:How to set variables inside a foreach loop for outside access in PHP?如何在 foreach 循环中设置变量以在 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“通常不鼓励”。

标签: php arrays variables


【解决方案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,你只是让你的例子复杂化了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-11
      • 2021-06-01
      • 2021-01-21
      • 1970-01-01
      • 1970-01-01
      • 2016-06-05
      • 1970-01-01
      相关资源
      最近更新 更多