2010-12-04 11 views
2

foreach(functionWithComplicatedComputationReturningAnArray()as $ key => $ value)PHP:foreachの本体での操作は複数回呼び出されますか?

上記のコードは、この関数を複数回呼び出しますか?

一般的に、この点に関して、関数呼び出しをパラメータとして受け入れるPHP言語構造については、ルールがありますか?

おかげ

Gidi

答えて

7

いいえ、それは一度呼び出されます。この(第二つforeachループ外の値を漏洩するという事実を無視して)

$tmp = functionWithComplicatedComputationReturningAnArray(); 
foreach ($tmp as $key => $value) { 
    ... 
} 

foreach (functionWithComplicatedComputationReturningAnArray() as $key => $value) { 
    ... 
} 

は、意味的に等価です。

+0

PHPドキュメントには言及していません。 – ThiefMaster

+0

ありがとうございます、他のループはどうですか? while($ someVar shealtiel

+0

ここではすべての繰り返しが呼び出されます。関数func()にエコーしてみると、それが見えます。 –

関連する問題