Мы все слышали о том, как в цикле 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
, где второй случай будет вызывать функцию снова и снова?