We have all heard of how in a for
loop, we should do this:
<?php
for ($i = 0, $count = count($array); $i < $c; ++$i)
{
// Do stuff while traversing array
}
?>
instead of this:
<?php
for ($i = 0; $i < count($array); ++$i)
{
// Do stuff while traversing array
}
?>
for performance reasons (i.e. initializing $count
would've called count()
only once, instead of calling count()
with every conditional check).
Does it then also make a difference if, in a foreach
loop, I do this:
<?php
$array = do_something_that_returns_an_array();
foreach ($array as $key => $val)
{
// Do stuff while traversing array
}
?>
instead of this:
<?php
foreach (do_something_that_returns_an_array() as $key => $val)
{
// Do stuff while traversing array
}
?>
assuming circumstances allow me to use either? That is, does PHP call the function only once in both cases, or is it like for
where the second case would call the function again and again?