Advertisement
  1. Code
  2. PHP

Comprende el ámbito de las variables en PHP

by
Read Time:8 minsLanguages:

Spanish (Español) translation by Ana Paulina Figueroa Vazquez (you can also view the original English article)

Las variables son una parte importante de cualquier lenguaje de programación. Puedes usarlas para almacenar todo tipo de información, como enteros, flotantes, cadenas, arreglos, el contenido de un archivo, etcétera. Después, es posible manipular los datos almacenados en variables agregando o eliminando información. El uso de variables también nos permite crear bucles y llevar a cabo algunas tareas de forma repetitiva. Además puedes definir funciones que reciban diferentes variables como argumentos y devuelvan datos nuevos.

En este tutorial, aprenderemos sobre un importante concepto conocido como el ámbito de las variables, y cómo es que afecta la manera en la que escribes código en PHP. También cubriremos el uso de las palabras reservadas global y static.

¿Qué es el ámbito de las variables?

Las variables se utilizan para almacenar y acceder o manipular información más tarde, pero no puedes simplemente acceder a sus datos desde cualquier lugar que desees. Algunas variables pueden volverse inaccesibles en ciertos lugares, dependiendo del lenguaje de programación que estés usando.

En términos simples, el ámbito de una variable determina su disponibilidad en diferentes secciones de un programa.

El ámbito de las variables en PHP

Cuando se trata del ámbito de las variables, PHP tiene un enfoque fácil de entender y sencillo de usar para los principiantes.

Básicamente, una variable que definas en algún lugar en un archivo PHP estará disponible o visible en casi todas partes después de ser definida. También podrás usarla dentro de otros archivos si la agregas al programa mediante el uso de include() y require().

Digamos que hay un archivo llamado variables.php y que contiene el siguiente código:

La variable $apple_count también estará disponible en otro archivo usando el siguiente código:

Sin embargo, esta variable no estará disponible dentro de funciones definidas por el usuario. Este es un ejemplo:

Por lo tanto, las variables definidas fuera de una función definida por el usuario no están disponibles dentro de esa función. De manera similar, las variables definidas dentro de una función existen solamente en el interior de dicha función. Es por eso que recibimos un aviso cuando intentamos desplegar con echo el valor de $mango_count fuera de nuestra función fruit_count().

Accede a variables dentro de funciones

Las funciones generalmente requieren datos de entrada para hacer algo útil. La mejor manera de hacer eso es enviar la información utilizando diferentes parámetros en la definición de la función. Por ejemplo, la función natural_sum(), que puedes ver a continuación, recibe la cantidad de números naturales como parámetro.

Si necesitas tomar una variable del exterior y usarla dentro de una función, puedes considerar el uso de la palabra reservada global.

Uso de la palabra reservada global de PHP para acceder a variables

Simplemente puedes usar la palabra reservada global antes de cualquier variable para obtener su valor desde el ámbito global. Al hacer eso, cualquier valor que se encuentre almacenado en la variable estará disponible dentro de la función sin tener que enviarlo como parámetro. También podrás cambiar el valor de la variable dentro de la función, y los cambios se reflejarán en todas partes.

Este es un ejemplo que reescribe la función natural_sum() para usar un valor global de $n.

Una de las principales desventajas de hacer las cosas de esta manera es que ya no sabemos en qué tipo de datos se basa natural_sum() para generar su salida. El valor de $n también puede ser cambiado en cualquier parte de tu código, y esto afectará la salida al llamar a natural_sum() nuevamente.

En el ejemplo anterior, no tenemos forma de saber qué cambió la salida de natural_sum() sin revisar el código. Aquí todavía podemos determinar fácilmente que el valor de $n fue incrementado en 5 dentro de la propia función. Sin embargo, es posible que esto no sea tan sencillo cuando trabajas con una gran cantidad de código.

Por eso es mejor evitar el uso de variables globales siempre que sea posible.

Uso de la superglobal $GLOBALS de PHP para acceder a variables

Otra forma de acceder a las variables globales dentro de una función es usar la variable superglobal $GLOBALS. Esto también te permite tener una variable local con el mismo nombre que el que tiene la variable global.

Los problemas que ocasionan que el uso de la palabra reservada global sea una mala práctica también existen en el caso de $GLOBALS.

Deberías considerar evitar el uso de las variables globales tanto como sea posible, y usarlas solamente si no puedes pensar en otra forma de obtener fácilmente los datos de una variable dentro de tu función particular.

Una situación en la que puede ser de ayuda utilizar global es cuando quieres realizar un seguimiento y actualizar el valor de una variable a lo largo de varias definiciones de función diferentes y deseas que los cambios en el valor de la variable se reflejen en todos lados.

Variables estáticas en PHP

Las variables definidas dentro de una función en PHP solamente existen dentro del ámbito de esa función. Esto significa que la variable ya no está disponible una vez que salimos del ámbito local. También significa que cualquier valor que asignemos a una variable en el interior de una función no persistirá a través de múltiples llamadas a esa función.

Como puedes ver, llamamos a natural_sum() tres veces en el ejemplo anterior, pero su valor sigue restableciéndose a 0 en la parte superior de nuestras llamadas. Esto nos dificulta hacer un seguimiento de la cantidad de veces que hemos llamado a natural_sum().

Una manera de superar esta limitación es usando la palabra reservada static. Ahora, el valor de $count persistirá a través de varias llamadas, como se muestra en el siguiente ejemplo.

El ejemplo anterior también muestra que declarar una variable estática en PHP no permite que dicha variable esté disponible fuera de su ámbito.

Si quieres acceder al valor de una variable fuera de su función, la mejor manera de hacerlo es utilizando una instrucción return. Puedes devolver cualquier tipo de valor, como cadenas, arreglos, objetos, etcétera.

Pensamientos finales

PHP tiene dos tipos de ámbitos para las variables. Hay un ámbito global general, en el que las variables que defines en el programa están disponibles en todos los lugares, como bucles y otros archivos que incluyan al archivo con variables. Luego hay un ámbito local para las funciones definidas por el usuario, en el que las variables se encuentran restringidas a esa función en particular.

Sin embargo, esto no impide la libre circulación de la información dentro y fuera de las funciones. Puedes obtener acceso a variables externas que no estén incluidas como parámetros en la función mediante el uso de la palabra reservada global. De manera similar, puedes acceder al valor de una variable definida dentro de una función mediante el uso de una instrucción return.

Aprende PHP con un curso gratuito en línea

Si quieres aprender PHP, ¡consulta nuestro curso gratuito en línea sobre los fundamentos de PHP!

En este curso, aprenderás los fundamentos de la programación en PHP. Comenzarás con los conceptos básicos, aprendiendo cómo funciona PHP y escribiendo bucles y funciones simples en él. Luego avanzarás a la codificación de clases para una programación orientada a objetos (POO) sencilla. En el camino, aprenderás las habilidades más importantes para escribir aplicaciones para la web: tendrás la oportunidad de practicar la respuesta a las solicitudes GET y POST, analizar JSON, autenticar usuarios y usar una base de datos MySQL.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.