2010-07-25 74 views
1

回来我不知道我做问题的foreach通过功能

foreach (func_to_return_array() as $item) { ... } 

将它称之为func_to_return_array()多次(数组的长度)?如果是这样,我猜它会更好使用

$arr = func_to_return_array(); 
foreach ($arr as $item) { ... } 
+0

我以前问过这个。被接受的答案提供了一个关于它如何工作的解释,所以这是一个很好的补充阅读:http://stackoverflow.com/questions/1685689/php-how-is-an-array-in-a-foreach-loop-read – BoltClock 2010-07-25 11:51:24

回答

7

它只会呼叫func_to_return_array()一次。例如:

foreach (foo() as $v) { 
    echo "$v\n"; 
} 

function foo() { 
    echo "Called foo\n"; 
    return range(1, 5); 
} 

输出:

Called foo 
1 
2 
3 
4 
5