mmm...
Cita:
Iniciado por gjx2
[...]
Ese mismo codigo funciona
Código PHP:
$foo = 'bar';
$candy = 'does';
function baz()
{
$GLOBALS["foo"];
$foo = 'BAR';
$GLOBALS['candy'] = 'DOES';
}
echo "<pre>" . $foo . '/' . $candy . "</pre>";
baz();
echo "<pre>" . $foo . '/' . $candy . "</pre>";
y seguro probaste tu código antes de escribir esto???
porque yo lo acabo de hacer, y no funciona....
en efecto, el
resultado correcto (
mi ejemplo) es este:
ese es el resultado que se espera...
mientras tu código imprime lo siguiente:
Cita:
Iniciado por gjx2
[...]
Que piensas ?
(
ni hablar)
--
Edito:
Código PHP:
// aqui tienes toda la razon, porque mas adelante en la funcion baz()
// utilzamos la matriz directamente... sin duda!
// ya que facilmente se puede hacer: $foo = 'bar';
// (pero lo hice para ilustrar...)
$GLOBALS['foo'] = 'bar'; ## No tengo que declarar a foo GLOBALS fuera de la funcion.
// * me refiero al caso del indice "candy" (que es lo que tu recalcabas bien)
$candy = 'does';
function baz()
{
// en lo siguiente, gracias al contexto de las variables externas a la funcion
// debemos "recuperar" la variable del contexto global (tu ¿pensaste?)
// o usar la matriz $GLOBALS (igual a $candy) directamente y omitir el operador "global"
global $foo; ## Por que declarar a fuera y luego adentro :pensando:
$foo = 'BAR';
$GLOBALS['candy'] = 'DOES'; // * aqui lo que explicaste con $candy
}
tal ves te convenga
leer sobre el contexto de las variables...
http://www.php.net/manual/en/languag...bles.scope.php