2010-07-25 28 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