El scope (o ambito de las variables) es el contexto en donde una variable es definida.
Usualmente, la mayor parte del tiempo una variable tiene un ambito simple, es decir, esta
disponible en todo el archivo e incluso en otros archivos donde se haga un require.
Ambito local
Cuando empezamos a usar funciones el ambito de cualquier variable definida dentro de la funcion pasa a ser un ambito local. En otras palabras, esa variable solo existe dentro
de la funcion.
La palabra reservada global
Cuando queremos que una variable externa exista dentro de una funcion sin necesidad de
pasarla como parametro podemos usar la palabra reservada “global”.
Entonces si deseo accede a una variable de ambito local, debo de declararla tambien fuera de esta misma funcion para que se global , pero esto no afecta el codigo ???
¡Hola! Si es de ámbito local deberías declararla únicamente dentro de ese ámbito local. En cambio, si tú quieres que tu variable sea global ahí sí la declaras fuera de la función, así la variable es global, y dentro de la función solo usas la palabra reservada global para que puedas usarla :D
OJO: Al usar global NO la estás declarando, simplemente le estás diciendo a PHP que la variable que ya existe la quieres usar dentro de tu función :D
Necesitaba esta clase antes de hacer un pequeño proyecto que me dio dolores de cabeza por esto del scope!
Gracias RETAX!
Scope de PHP
El scope (o ambito de las variables) es el contexto en dondte una variable es definida. Usualmente, la mayor del tiempo una variable tiene un ambito simple, es decir, está disponible en todo el archivo e incluso en otros archivos donde se haga un require
Ambito local
Cuando empezamos a usar funciones el ambito de cualquier variable definida dentro de la funcion pasa a ser un ambito local
En otras palabras, esa variable solo existe dentro de la funcion
La palabra reservada global
Cuando queremos que una variable externa exista dentro de una funcion sin necesidad de pasarla como un parametro podemos usar la palabra reservada "global".
$outside_variable ="Esto es una variable global";functionmy_function(){ global $outside_variable; echo $GLOBALS["outside_variable"];}
Es posible ver todas las variables globales disponibles y creadas usando la variable $GLOBALS, y como este devuelve un array de las variables disponibles puedes acceder a estas
functionmy_function(){ global $outside_variable; echo $outside_variable; echo $GLOBALS["outside_variable"];}
Esto es lo que no entiendo , se supone que si tu vas a usar una variable que esta fuera de la funcion , la pasas por parametro y ya la puedes usar , o con la palabra reservada this ?
Hola, Retax, tengo una duda, ¿Sería mejor usar "use" para usar una variable dentro de una función a "global"?
Sería una buena práctica usar GLOBAL para acceder a una variable que no fue declarada en el ámbito de una función y que no se haya pasado como parámetro?
la variable $globals funciona como $post o $get
Resumen de la clase
<?php
/* $outside_variable = "Esto es una variable global";
function my_function(){
global $outside_variable;
echo $outside_variable;
}
my_function(); */$outside_variable ="Esto es una variable global";functionmy_function(){ echo $GLOBALS['outside_variable'];}my_function();?>