我们都听说过如何在for
循环,我们应该这样做:
for ($i = 0, $count = count($array); $i < $c; ++$i)
{
// Do stuff while traversing array
}
而不是这个:
for ($i = 0; $i < count($array); ++$i)
{
// Do stuff while traversing array
}
出于性能原因(即初始化$count
会打电话的count()
仅一次,而不是调用count()
每个条件检查)。
如果在一个foreach
循环,我这样做:
$array = do_something_that_returns_an_array();
foreach ($array as $key => $val)
{
// Do stuff while traversing array
}
而不是这个:
foreach (do_something_that_returns_an_array() as $key => $val)
{
// Do stuff while traversing array
}
假设情况允许我使用其中之一?也就是说,PHP 在这两种情况下都只调用该函数一次,还是像这样for
第二种情况会一次又一次地调用该函数?
foreach()
is 使用迭代器实现 http://php.net/manual/en/language.oop5.iterations.php- 因此它只调用一次返回数组的函数,然后使用指向现有结果集的迭代器继续处理每个项目。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)