gratiszona

Variables

En PHP las variables se representan como un signo de dolar seguido por el nombre de la variable. El nombre de la variable
es sensible a minusculas y mayusculas.
$var = "Bob";
$Var = "Joe";
echo "$var, $Var"; // produce la salida "Bob, Joe"

En PHP3, las variables siempre se asignan por valor. Esto significa que cuando se asigna una expresion a una variable, el
valor integro de la expresion original se copia en la variable de destino. Esto quiere decir que, por ejemplo, despues e
asignar el valor de una variable a otra, los cambios que se efectuen a una de esas variables no afectara a la otra. Para mas
informacion sobre este tipo de asignacion, vea Expresiones.
PHP4 ofrece otra forma de asignar valores a las variables: asignar por referencia. Esto significa que la nueva variable
simplemente referencia (en otras palabras, "se convierte en un alias de"o "apunta a") la variable original. Los cambios a la
nueva variable afectan a la original y viceversa. Esto tambien significa que no se produce una copia de valores; por tanto
la asignacion ocurre mas rapidamente. De cualquier forma, cualquier incremento de velocidad se notara solo en los bucles
criticos cuando se asignen grandes arrays u objetos.
Para asignar por referencia, simplemente se antepone un ampersand (&) al comienzo de la variable cuyo valor se esta
asignando (la variable fuente). Por ejemplo, el siguiente trozo de codigo produce la salida ’Mi nombre es Bob’ dos veces:
<?php
$foo = ’Bob’; // Asigna el valor ’Bob’ a $foo
$bar = &$foo; // Referencia $foo via $bar.
$bar = "Mi nombre es $bar"; // Modifica $bar...
echo $foo; // $foo tambien se modifica.
echo $bar;
?>

Algo importante a tener en cuenta es que solo las variables con nombre pueden ser asignadas por referencia.
<?php
$foo = 25;
$bar = &$foo; // Esta es una asignacion valida.
$bar = &(24 * 7); // Invalida; referencia una expresion sin nombre.
function test() {
return 25;
}
$bar = &test(); // Invalida.
?>

Variables dinamicas

A veces es conveniente tener nombres de variables variables. Dicho de otro modo, son nombres de variables que se pueden
establecer y usar dinamicamente. Una variable normal se establece con una sentencia como:
$a = "hello";
Una variable variable toma el valor de una variable y lo trata como el nombre de una variable. En el ejemplo anterior, hello
se puede usar como el nombre de una variable utilizando dos signos de dolar. p.ej.
$$a = "world";
En este momento se han definido y almacenado dos variables en el arbol de simbolos de PHP: $a, que contiene "hello", y
$hello, que contiene "world". Es mas, esta sentencia:
echo "$a ${$a}";
produce el mismo resultado que:
echo "$a $hello";
p.ej. ambas producen el resultado: hello world.
Para usar variables variables con arrays, hay que resolver un problema de ambigüedad. Si se escribe $$a[1] el interprete
necesita saber si nos referimos a utilizar $a[1] como una variable, o si se pretendia utilizar $$a como variable y el indice
[1] como indice de dicha variable. La sintaxis para resolver esta ambiguedad es: ${$a[1]} para el primer caso y ${$a}[1]
para el segundo.
Anterior: declarar tipos en php
Siguiente: ambito de las variables en php