Variables en PHP: local, global y static

Avatar Tutor | octubre 18, 2018

Las variables de PHP son solo un nombre para un valor y simplemente puede usarlo así $var_nombre = valor ;. Por lo general, almacenan caracteres y valores numéricos para su uso posterior en el bloque de programación. Aquí hay un ejemplo simple:

<? php
$a = "Bienvenido";
$b = "Hola";
$first = "John";
$last = "Doe";
$c = ", ¿cómo estás hoy?";

echo "$a $first $last <br />"; // Devuelve: Bienvenido John Doe
echo "$b $first $c <br />"; // Devuelve: Hola John, ¿cómo estás hoy?

$x = 5;
$y = 10.1;
echo $x + $y; // Devuelve: 15.1
?>

¿Qué es el alcance de las variables en PHP?

En PHP, el alcance de una variable es la parte del script donde se definió una variable y se puede hacer referencia a ella. Hay tres tipos de alcances en PHP.

local: declarado dentro de una función y solo se puede acceder a él dentro de esa función específica
global: se declara fuera de una función y solo se puede acceder a ella fuera de una función. Hay una excepción para esto cuando se usa la palabra clave global.
static: declarado dentro de una función y manteniendo su valor en esa función

Hay casos en los que declara una variable fuera de una función y desea usarla dentro de la otra manera.

Aquí es donde entra la palabra clave global.

<?php
$x = 1;
$y = 2;

function sum() {
global $x, $y;
$result = $x + $y;
}

sum();
echo $result; // Devuelve: 3
?>

En el otro lado, la palabra clave static se utiliza para almacenar un valor de una variable declarada dentro de una función, para operaciones consecutivas. Normalmente, todas las variables locales se eliminan cuando se cierra la función, a menos que se use la palabra clave static.

<?php
function count_table() {
static $x = 0;
echo "El valor de x es ahora $x <br />\n";
return $x++;
}

while(count_table() < 10){
// do some other stuff
}

/* Devuelve:
El valor de x es ahora 0 
El valor de x es ahora 1 
El valor de x es ahora 2 
El valor de x es ahora 3 
El valor de x es ahora 4 
El valor de x es ahora 5 
El valor de x es ahora 6 
El valor de x es ahora 7 
El valor de x es ahora 8 
El valor de x es ahora 9 
El valor de x es ahora 10 
*/
?>

Recordatorios importantes

  • Las variables de PHP deben comenzar con un símbolo de dólar ($)
  • Las variables de PHP deben comenzar (después del símbolo de dólar) con una letra o un guión bajo (_).
  • Las variables de PHP solo admiten caracteres alfanuméricos y guiones bajos (a-z, A-Z, 0-9 o _).
  • Las variables de PHP distinguen entre mayúsculas y minúsculas, por lo que $myVar no es lo mismo que $MyVar

Desventajas

Las variables de PHP no pueden comenzar con un número.
Los nombres de las variables de PHP no pueden contener símbolos (excepto el signo de dólar inicial).

CamelCase vs snake_case

Es bueno usar nombres descriptivos, no largos. Si el nombre de su variable contiene varias palabras, puede usar diferentes técnicas para hacer que sus bloques de programación sean legibles y autoexplicables. Independientemente del estilo que elija, es una buena práctica seguir una técnica.

$ snake_case – separa palabras usando el guión bajo
$ UpperCameleCase – usa mayúsculas para separar palabras
$ lowerCamelCase: igual que en el caso anterior, la primera letra es minúscula

Solo elige una y apégate a ella para escribir tus documentos php.

Variables de función

PHP le permite usar un nombre asignado dinámicamente para la variable o una función. Echa un vistazo al código:

<? php
$a = 'hola';
$$a = 'mundo';

echo $a. "". $$a. "<br />"; // Devuelve hola mundo
echo $a. "". $hola; // Devuelve hola mundo
?>

Hay un ejemplo bastante bueno de variable variable en la página php.net:

<? php
$Bar = "a";
$Foo = "Bar";
$World = "Foo";
$Hola = "Mundo";
$a = "Hola";

$a; // Contiene Hola
$$a; // Contains World
$$$a; // Contiene Foo
$$$$a; // Contiene barra
$$$$$a; // Contiene a
?>

El uso de una variable como nombre de función puede ser bastante útil en algunos casos, como enganches, filtros, devoluciones de llamadas y otros. PHP intentará llamar a la función usando el valor de sus variables.

Ejemplo de función variable:

<? php
función foo () {
    echo "Soy una cadena dentro de foo";
}

$bar = "foo";
$bar(); // salidas: soy una cadena dentro de foo
?>

De esta manera puede llamar dinámicamente de una función a otra. Hay muchos más ejemplos de implementaciones y puede leer más sobre la variable de función en el sitio del manual de php:

http://php.net/manual/es/functions.variable-functions.php


Written by Tutor