0

solo quiero saber la teoría, es solo saber la teoría aún estoy verde con este tema, he intentado hacerlo por mi cuenta, mi pregunta es ¿en php como acceder a una variable global desde dentro de una función? ¿y se puede modificar su valor? he intentado explicarlo con el siguiente ejemplo, pero no sé cómo decirlo con mis palabras

function test() {
    $foo = "variable local";

    echo '$foo en el ámbito global: ' . $GLOBALS["foo"] . "\n";
    echo '$foo en el ámbito simple: ' . $foo . "\n";
}

$foo = "Contenido de ejemplo";
test();
?>```

1 Answers1

0

Voy a intentar explicar con 2 ejemplos el próposito que buscas. Vamos a ver 2 formas de tratar variables globales:

  1. global: cuando escribes "global" delante de la variable la genera global en todos los ámbitos. Aunque la llames dentro de una función o fuera, el valor que le hayas puesto donde fuera se mantiene.

  2. $GLOBALS['variable']: Esto realiza una llamada a la variable en el momento de tratarla (fuera de la función), pero si luego cambias el valor de la variable local del mismo nombre, cada una tiene su valor, una dentro de la misma funcion donde la has definido y la otra accesible desde fuera de la función.

Te pongo un ejemplo donde creo que se entiende el concepto:

$foo = "Variable Global";

function muestraFoo(){
    global $foo;
    echo $foo.PHP_EOL; // Variable Global
    $foo = "Variable Global desde la función modificada";
}

muestraFoo();
echo $foo.PHP_EOL; // Variable Global desde la función modificada

$foo2 = "Foo2 Global";
function muestraFoo2(){
    $foo2 = "Foo2 Local";
    echo $GLOBALS["foo2"].PHP_EOL; // Foo2 Global
    echo $foo2.PHP_EOL; // Foo2 Local
    
}
muestraFoo2();
echo $foo2; // Foo2 Global
Natxo
  • 36
  • 5