为什么在每个语句的a中重命名变量?

时间:2014-07-24 13:21:43

标签: php

我现在想知道,为foreach语句重命名变量的原因是什么。例如,为什么会这样:

foreach ($Foobar as $Foo) {};


不像这样使用:

foreach ($Foobar) {};


我知道这只会检查值是否为真,因此是一个不好的例子,但这并不能解释为什么整个变量需要重命名?

3 个答案:

答案 0 :(得分:2)

$ Foo是$ Foobar数组中的一项,而不是相同的变量。

答案 1 :(得分:2)

因为您没有重命名该变量,所以您声明了另一个变量,其中存储了每个循环上的foreach结果。

作为一个例子,你有这个数组

array('key' => 'value', 'foo' => 'bar');

并使用此foreach语法

foreach ($Foobar as $value)

变量$value保存数组当前循环的值。

输出每个循环

  • first loop => $ value持有value
  • second loop => $ value持有bar

或者您可以像这样写

foreach ($Foobar as $key =>  $value)

在每个循环中,数组键和值都写在$key$value

输出每个循环

  • first loop => $ value持有value / $ key hold key
  • second loop => $ value持有bar / $ key hold foo

答案 2 :(得分:0)

$ Foo是一个变量,在每次迭代中包含Array $ Foobar的一个不同元素