En el siguiente código:¿El uso de una función en el bucle foreach almacena en caché el resultado o llama a la función cada vez?
function a(){
echo 'a';
return array(1,2,3,4);
}
foreach(a() as $t){
echo $t;
}
podemos ver una() es llamado una sola vez, y parece que se almacena en caché el valor devuelto ...
Pero luego llegué a ver this debate (see comments on the question) me estoy perdiendo algo?
Intenta cambiar eso a 'for ($ a = 0; $ a <= count (a()); $ a ++)' y mira lo que obtienes :) –