Cita:
Iniciado por metacortex 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<?php
$a = 1;
function change(){
$GLOBALS['a'] = 2;
}
change();
echo $a;
?>
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<?php
$a = 1;
function change(){
//Esta es la parte que hace el extract
$a = 1;
//Luego la modificamos y solamente se puede ver dentro de la función
$a = 2;
}
change();
echo $a;