PHP 5 Certification: Algunos comentarios.
Después de un pequeño faltaso, una gripe terrible y unas cuantas visitas al medico aquí estoy de nuevo. Hoy vengo a comentar sobre los primeros 2 capitulos del libro de la certificación de PHP 5. El primer capitulo se llama "PHP Basics" y el segundo "Function". No quiero parecer sobervio pero en realidad fueron 2 capitulos de esfuerzo (no se mucho de ingles) y tiempo perdidos... si has leido el manual oficial sabés mucho más de lo que explican en estos capitulos.
Si bien por ahora no hubo algo que me sorprendiera en gran medida hubo algo que, si bien es simple y lógico no supe contestar en el momento que estaba leyendo el libro. ¿Por que la ejecución del siguiente código devuelve lo que devuelve?$a = array(1,2,3);
foreach($a as &$entero){
//Hacer algo
}
foreach($a as $entero){
//Hacer algo
}
echo '<pre>';
print_r($a);
echo '</pre>';
Y devuelve:
Array
(
[0] => 1
[1] => 2
[2] => 2
)
La explicación es bastante simple. En el primer foreach por alguna razón -que puede ser que quieras modificar el valor del array dentro de este- se usa por referencia el foreach. Cuando termina la ejecución del primer foreach la variable, en este caso, $entero sigue siendo una referencia al ultimo elemento del array, cuando empieza el segundo foreach en la primera iteración el ultimo elemento del array (el referenciado) toma el valor del primer elemento, en la segunda iteración el referenciado toma el valor del segundo elemento y en la ultima iteración toma el valor de si mismo que es en realidad el valor de la iteración anterior.
Como pueden ver es muy simple y trivial, pero sinceramente no me dí cuenta ni supe contestarlo, tal vez por distraido, por falta de concentración o lo que sea, pero hasta donde llevo leído el libro esto es lo más avanzado que he leído y la verdad es que no es nada del otro mundo.
Dario Ocles


0 comentarios:
Publicar un comentario en la entrada