Ver Mensaje Individual
  #12 (permalink)  
Antiguo 20/06/2009, 11:24
Avatar de gjx2
gjx2
 
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: Variables $_GLOBAL en una funcion

pateketrueke
Gracias , se que literalmente son iguales hacen los mismo pero tiene diferente tipo de uso.

En el ejemplo que me pones haces mal uso de la funcion $GLOBALS

Código:
$GLOBALS['foo'] = 'bar'; ## No tengo que declarar a foo GLOBALS fuera de la funcion.
$candy = 'does';

function baz()
{
  global $foo;         ## Por que declarar a fuera y luego adentro :pensando: 
  $foo = 'BAR';
  $GLOBALS['candy'] = 'DOES';
}

echo "<pre>" . $foo . '/' . $candy . "</pre>";

baz();
echo "<pre>" . $foo . '/' . $candy . "</pre>";
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>"

Lo que aclare fue que $GLOBALS la unica diferencia con global es que La primera permite matricez asociativas ejem.

Ejemplo con global

Código PHP:

$n
["agenda"]["Amigos"]["Primaria"][1] = "Miguel";

function 
baz()
{

global 
$n;
echo 
$n["agenda"]["Amigos"]["Primaria"][1];

}

baz(); 
Con el ejemplo anterior puedo hacer uso de mi matrix libremente en mi funcion como si estuviera declarada dentro.

Sin embargo si quisiera hacer lo anterior con $GLOBALS tuviera que declarar
la matriz antes de la funcion , con el ambito de global lo cual no es lo k deseo.

$GLOBALS["agenda"]["Amigos"]["Primaria"] = "Miguel";

Que piensas ?