PHP-foreach,使用方法返回值或变量


PHP - foreach, use method return value or variable

使用以下两个示例:

foreach($this->fooBar() as $foo => $bar) {
     // do something 
}

$fooBar = $this->fooBar();
foreach($fooBar as $foo => $bar) {
     // do something 
}

使用两者中的任何一个是否有任何含义,或者可读性是否应该是两者之间唯一的考虑因素?

基本上是一样的。

在第一个示例中,$this->fooBar()的结果存储在内部。

只有当您也想在foreach循环之外使用$fooBar时,第二个示例才有意义。

要了解更多关于PHP的foreach内部的信息,以及为什么您不应该太在意您的示例(与类似的其他示例)之间的差异,请查看以下文章:

https://nikic.github.io/2011/11/11/PHP-Internals-When-does-foreach-copy.html