Ver Mensaje Individual
  #93 (permalink)  
Antiguo 24/12/2010, 06:02
Avatar de abimaelrc
abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

Cita:
Iniciado por metacortex Ver Mensaje
Eh... No hagan caso a la burrada anterior.

Si usamos $GLOBALS, el nombre de la variable se convierte en la clave de un array. Le asignamos un nuevo valor a la clave y listo.

Código PHP:
Ver original
  1. <?php
  2. $a = 1;
  3. function change(){
  4.     $GLOBALS['a'] = 2;
  5. }
  6. change();
  7. echo $a;
  8. ?>
Ahora la razón de por qué el segundo ejemplo no funciona es porque extract lo que hace es leer el valor que tiene el array y se lo asigna a una nueva variable y lo que eso hace es limitar la variable a que sea legible dentro de la función solamente, por el ámbito de las variables. Es como si extract lo que hiciera es esto
Código PHP:
Ver original
  1. <?php
  2. $a = 1;
  3. function change(){
  4.     //Esta es la parte que hace el extract
  5.     $a = 1;
  6.  
  7.     //Luego la modificamos y solamente se puede ver dentro de la función
  8.     $a = 2;
  9. }
  10. change();
  11. echo $a;
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos