¿Cómo se lee una matriz en un bucle foreach de PHP?
Todos hemos oído hablar de cómo en unfor
bucle, deberíamos hacer esto:
for ($i = 0, $count = count($array); $i < $c; ++$i)
{
// Do stuff while traversing array
}
en lugar de esto:
for ($i = 0; $i < count($array); ++$i)
{
// Do stuff while traversing array
}
por razones de rendimiento (es decir, inicializando$count
habría llamadocount()
solo una vez, en lugar de llamarcount()
con cada verificación condicional).
¿Entonces también hace una diferencia si, en unforeach
Loop, hago esto:
$array = do_something_that_returns_an_array();
foreach ($array as $key => $val)
{
// Do stuff while traversing array
}
en lugar de esto:
foreach (do_something_that_returns_an_array() as $key => $val)
{
// Do stuff while traversing array
}
suponiendo que las circunstancias me permitan usar Es decir, PHP llama a la función solo una vez en ambos casos, o es comofor
donde el segundo caso llamaría a la función una y otra vez?