使用以下两个示例:
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