En PHP las variables se representan como 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.
$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 expresión a una variable, el
valor íntegro de la expresión original se copia en la variable
de destino. Esto quiere decir que, por ejemplo, después e
asignar el valor de una variable a otra, los cambios que se efectúen
a una de esas variables no afectará a la otra. Para más
información sobre este tipo de asignación, 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 también significa
que no se produce una copia de valores; por tanto,
la asignación ocurre más rápidamente. De cualquier forma,
cualquier incremento de velocidad se notará sólo en los bucles
críticos cuando se asignen grandes arrays u objetos.
Para asignar por referencia, simplemente se antepone un ampersand (&) al
comienzo de la variable cuyo valor se está
asignando (la variable fuente). Por ejemplo, el siguiente trozo de código
produce la salida ’Mi nombre es Bob’ dos veces:
<?php
$foo = ’Bob’; // Asigna el valor ’Bob’ a $foo
$bar = &$foo; // Referencia $foo vía $bar.
$bar = "Mi nombre es $bar"; // Modifica $bar...
echo $foo; // $foo también se modifica.
echo $bar;
?>
Algo importante a tener en cuenta es que sólo las variables con nombre
pueden ser asignadas por referencia.
<?php
$foo = 25;
$bar = &$foo; // Esta es una asignación válida.
$bar = &(24 * 7); // Inválida; referencia una expresión sin
nombre.
function test() {
return 25;
}
$bar = &test(); // Inválida.
?>
A veces es conveniente tener nombres de variables variables. Dicho de otro
modo, son nombres de variables que se pueden
establecer y usar dinámicamente. 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 dólar.
p.ej.
$$a = "world";
En este momento se han definido y almacenado dos variables en el árbol
de símbolos de PHP: $a, que contiene "hello", y
$hello, que contiene "world". Es más, 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 intérprete
necesita saber si nos referimos a utilizar $a[1] como una variable, o si se
pretendía utilizar $$a como variable y el índice
[1] como índice de dicha variable. La sintaxis para resolver esta ambiguedad
es: ${$a[1]} para el primer caso y ${$a}[1]
para el segundo.
|
Anterior: 5 declarar tipos en php |
Siguiente: ambito de las variables en php |
| articulos relacionados |