Variables

Cap铆tulo 12. Variables

Tabla de contenidos
Conceptos B谩sicos
Variables predefinidas
Ambito de las variables
Variables variables
Variables externas a PHP

Conceptos B谩sicos

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.

Los nombres de variables siguen las mismas reglas que otras etiquetas en PHP. Un nombre de variable valido tiene que empezar con una letra o una raya (underscore), seguido de cualquier n煤mero de letras, n煤meros y rayas. Como expresi贸n regular se podria expresar como: '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'

Nota: En nuestro caso, una letra es a-z, A-Z, y los caracteres ASCII del 127 al 255 (0x7f-0xff).

<?php
$var
= "Bob";
$Var = "Joe";
echo
"$var, $Var";      // outputs "Bob, Joe"

$4site = 'not yet';     // invalid; starts with a number
$_4site = 'not yet';    // valid; starts with an underscore
$t盲yte = 'mansikka';    // valid; '盲' is ASCII 228 (Extendido)
?>

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" 贸 "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 matrices u objetos.

Para asignar por referencia, simplemente se antepone un ampersandsigno "&" 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 = &amp;$foo;              // Referencia $foo v&iacute;a $bar.
$bar = "Mi nombre es $bar";  // Modifica $bar...
echo $foo;                 // $foo tambi&eacute;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 = &amp;$foo;      // Esta es una asignaci&oacute;n v&aacute;lida.
$bar = &amp;(24 * 7);  // Inv&aacute;lida; referencia una expresi&oacute;n sin nombre.

function test() {
   return
25;
}

$bar = &amp;test();    // Inv&aacute;lida.
?>