Lo que las Referencias son

Las Referencias en PHP te permiten lograr que dos variables "apunten" al mismo contenido. Cuando haces algo como:

$a =& $b

significa que $a y $b apuntan a la misma variable.

Nota: $a y $b son completamente iguales, no es que $a esté apuntando a $b o viceversa, sino que tanto $a como $b apuntan al mismo lugar.

La misma sintáxis puede ser utilizada con funciones, que devuelven Referencias, y con el operador new (en PHP 4.0.4 o superior):

$bar =& new fooclass();
$foo =& find_var ($bar);

Nota: El no utilizar el operador & causa que el objeto sea copiado en memoria. Si utilizamos $this en la clase, entonces actuaremos sobre la instancia actual de la clase. Las asignaciones sin & harán una copia de la instancia (por ejemplo, del objeto) y $this operará en la copia, lo que no siempre es el comportamiento deseado. Usualmente se desea utilizar una sola instancia, debido a razones de memoria y performance de la aplicación.

Mientras que se puede utilizar @ para silenciar cualquier error en el constructor utilizando @new, esto no funciona cuando utilizamos &new. Esto es una limitación del Zend Engine y por lo tanto, resultará en un error de sintáxis.

Otro uso que se le puede dar a las referencias es el traspaso de variables por-referencia. Esto se logra haciendo que una variable 'local' a la función y una variable en el script 'referencien' al mismo contenido. Por ejemplo:

function foo (&$var)
{
    $var++;
}

$a=5;
foo ($a);

hará que $a valga 6. Esto es posible porque en la funció foo, la variable $var 'referencia' al mismo contenido que la variable $a. Más información acerca de paso por referencia.

Un tercer uso de las referencias es el retorno por referencia.

Hosting by: hurra.com
Generated: 2007-01-26 18:00:52