如何在PHP中执行foreach?

时间:2010-02-19 16:48:27

标签: php foreach

foreach(func() as $item)...

上述内容只会调用func()一次,但为什么?究竟发生了什么?

3 个答案:

答案 0 :(得分:7)

foreach接受一个数组。你本质上是自己调用func(),并将结果数组传递给foreach结构,它可以遍历它。

答案 1 :(得分:2)

foreach不是具有在每次迭代之前或之后测试的条件的控制结构,如whilefordo … while。相反,它需要一个数组,在内部复制它并迭代它。

数组可以通过变量(最常用的变体)传递:

foreach ($arr as $val) { /* … */ }

或者使用另一个在计算时返回数组的表达式:

foreach (array('foo','bar') as $val) { /* … */ }

function f() { return array('foo','bar'); }
foreach (f() as $val) { /* … */ }

答案 2 :(得分:1)

不需要多次调用该函数 - 它应该返回一个可以迭代的数组。