este código producir una salida inesperada:PHP instrucción foreach por referencia: comportamiento inesperado cuando la reutilización de iterador
$array=str_split("abcde");
foreach($array as &$item)
echo $item;
echo "\n";
foreach($array as $item)
echo $item;
de salida:
abcde
abcdd
si el uso de &$item
segundo bucle todo funciona bien.
No entiendo cómo este código podría afectar el contenido de $array
. Podría considerar que un unset($header)
implícito eliminaría la última fila, pero ¿de dónde viene el doble dd
?
gracias. ¿Hay alguna forma de "separar" $ ítem del 4 ° elemento después del primer ciclo? –
@lenzai: 'unset ($ item);' --- es una práctica común desarmar la variable de referencia siempre y cuando ya no la necesite para evitar tales confusiones. – zerkms
mi error, pensé unsset ($ item eliminaría $ array [4]. Supongo que estaba equivocado. –