# Programación en PHP/Variables
## Introducción

En PHP las variables se representan con un signo de dólar seguido por el nombre de la variable. El nombre de la variable es sensible a minúsculas y mayúsculas.
Los nombres de variables siguen las mismas reglas que otras etiquetas en PHP. Un nombre de variable válido tiene que empezar con una letra o un carácter de subrayado, seguido de cualquier número de letras, números y caracteres de subrayado.
Las variables en PHP se asignan, como en muchos otros lenguajes, con el símbolo igual (=).
Nota: $this es una variable especial que no puede ser asignada.
Un ejemplo:

## Inicialización y asignación de variables

PHP es un lenguaje no tipado. Esto significa que las variables no necesitan ser inicializadas y su tipo de dato no solo no precisa ser indicado, sino que éste puede cambiar. PHP simplemente sabe el tipo de dato que se utiliza en cada momento dependiendo del contexto en que se utilice.
Por ejemplo:
No es necesario iniciar variables en PHP, sin embargo, es una muy buena práctica. Las variables no inicializadas tienen un valor predeterminado de acuerdo a su tipo dependiendo del contexto en el que son usadas.

## Variables por valor y variables por referencia

Por defecto, en PHP las variables se asignan por valor. Esto significa que al asignar una expresión a una variable, el valor de la expresión es copiado a la variable.
Por ejemplo:
Sin embargo, las variables también pueden asignarse por referencia. Esto significa que la nueva variable referencia a la variable original. En otras palabras, se convierte en un alias de (o simplemente apunta a) la variable original. Si una de las dos es cambiada, la otra también cambia su valor.
Para asignar por referencia, simplemente se antepone un signo ampersand (&) al comienzo de la variable cuyo valor se está asignando. Sólo las variables con nombre pueden ser asignadas por referencia.
Por ejemplo:
Fuente: Trubiso

## Variables predefinidas

PHP proporciona una gran cantidad de variables predefinidas a cualquier script que se ejecute. Algunas de ellas son:
* $GLOBALS — Hace referencia a todas las variables disponibles en el ámbito global
* $_SERVER — Información del entorno del servidor y de ejecución
* $_GET — Variables HTTP GET
* $_POST — Variables HTTP POST
* $_FILES — Variables de Carga de Archivos HTTP
* $_REQUEST — Variables HTTP Request
* $_SESSION — Variables de sesión
* $_ENV — Variables de entorno
* $_COOKIE — Cookies HTTP

## Ámbito de las variables

El ámbito de una variable es el contexto dentro del cual está definida. La mayor parte de las variables sólo tienen un ámbito simple, que también abarca los ficheros incluidos y requeridos. Por ejemplo:
La variable $var1 estará disponible también al interior del script file.php.
En el caso de las funciones, al contrario que el lenguaje C, las variables definidas en un ámbito global no pueden ser accedidas dentro de un ámbito local (la función):

### Variables globales accesibles

Para que una variable global sea accesible desde un ámbito local, como una función, se debe utilizar la palabra clave global:
Otro método sería utilizar el array $_GLOBALS:

### Variables estáticas

Una variable estática existe sólo en el ámbito local definido, pero no pierde su valor cuando la ejecución del programa abandona este ámbito.
Por ejemplo, el siguiente script:
Imprimiría 0 (cero) cada vez que se llamase a la función prueba. Sin embargo, declarando una variable estática:
Imprimiría una secuencia (0, 1, 2, 3, ...) cada vez que se llamase a la función prueba, ya que el valor de $var1 se conserva estáticamente tras cada llamada a la función.
Las variables estáticas no se pueden redeclarar en la misma función (no se podría declarar otra vez static $var1).

## Variables variables

Una variable variable es simplemente una variable cuyo nombre es el valor de otra variable. Por ejemplo:
O también: