¿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?

Respuestas a la pregunta(6)

Su respuesta a la pregunta