- Funciones en PHP: Definición y cómo usarlas
- Devolver valores en funciones con PHP
- Pasar argumentos por referencia en una función
- Devolver variables globales al usar funciones
Una de las maneras de dar a una función acceso a una variable externa es declarando dicha variable global dentro de la función. Para declarar una variable global basta con añadir la keyword global al nombre de la variable. De esta manera, se podrían devolver variables globales en una función.
Por ejemplo, para este caso voy a declarar 3 variables que tendrán nombres en mayúsculas. Los pasaré a una función que las convertirá en globales y estarán en minúsculas.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$nombre1 = "PEPE"; $nombre2 = "JOse"; $nombre3 = "MaRIo"; echo $nombre1 . " " . $nombre2 . " " . $nombre3 . "<br>"; nombres_minusculas(); echo $nombre1 . " " . $nombre2 . " " . $nombre3; function nombres_minusculas() { global $nombre1; $nombre1 = strtolower($nombre1); global $nombre2; $nombre2 = strtolower($nombre2); global $nombre3; $nombre3 = strtolower($nombre3); } |
Cuando la función es llamada declara las variables como globales, de manera que no es preciso pasarlos como parámetros. Además, a partir de ahora podría accederse desde cualquier parte del programa haciendo innecesario emplear un return para devolverlas.
Sin embargo, lo ideal es tratar de mantener un ámbito local lo máximo posible. Las variables globales pueden ser una brecha de seguridad además de quebraderos de cabeza a la hora de debuggear.
Resumen ámbito de las variables
Al ser este el último post sobre variables en funciones estaría bien recapitular que ámbitos pueden tener:
- Local: Son accesibles solo en una parte del código donde las definas. Si las defines fuera de una función, podrán accederse a ellas fuera de funciones, clases etc. Si una variable está dentro de la función, solo esa función puede acceder a su variable, y el valor es pérdido cuando la función la devuelve.
- Global: Son accesibles desde todas partes de tu código.
- Estática: Son accesibles sólo dentro de la función que las declaró pero, retienen su valor cuando se realizan múltiples llamadas.
Y hasta aquí devolver variables globales en funciones, espero que hayáis aprendido algo. A seguir picando 🙂