我现在想知道,为foreach语句重命名变量的原因是什么。例如,为什么会这样:
foreach ($Foobar as $Foo) {};
不像这样使用:
foreach ($Foobar) {};
我知道这只会检查值是否为真,因此是一个不好的例子,但这并不能解释为什么整个变量需要重命名?
答案 0 :(得分:2)
$ Foo是$ Foobar数组中的一项,而不是相同的变量。
答案 1 :(得分:2)
因为您没有重命名该变量,所以您声明了另一个变量,其中存储了每个循环上的foreach
结果。
作为一个例子,你有这个数组
array('key' => 'value', 'foo' => 'bar');
并使用此foreach语法
foreach ($Foobar as $value)
变量$value
保存数组当前循环的值。
输出每个循环
value
bar
或者您可以像这样写
foreach ($Foobar as $key => $value)
在每个循环中,数组键和值都写在$key
和$value
输出每个循环
value
/ $ key hold key
bar
/ $ key hold foo
答案 2 :(得分:0)
$ Foo是一个变量,在每次迭代中包含Array $ Foobar的一个不同元素