Crear referencias al interior del constructor puede llevar a
resultados confusos. Esta sección tipo-tutorial le ayuda a
evitar problemas.
Revisemos si existe una diferencia entre $bar1,
que ha sido creado usando el operador de copia
= y $bar2 que ha sido creado
usando el operador de referencia =&...
Aparentemente no hay ninguna diferencia, pero en realidad hay una
bastante importante: $bar1 y
$refglobal[0] _NO_ son referenciados, NO son la
misma variable. Esto se debe a que "new" no devuelve una
referencia por defecto, en su lugar devuelve una copia.
Nota:
No existe una pérdida de rendimiento (ya que desde PHP 4
se usa el conteo de referencias) al devolver copias en lugar de
referencias. Al contrario, con frecuencia es mejor trabajar
simplemente con copias en lugar de referencias, ya que crear
referencias toma cierto tiempo mientras que crear copias
prácticamente no toma nada de tiempo (a menos que ninguna
de ellas sea una matriz u objeto grande y una de ellas se
modifique y luego las otras subsecuentemente, entonces
serÃa buena idea usar referencias para modificarlas todas
al mismo tiempo).
Para probar lo que se dice más arriba, veamos el siguiente
código.
Otro ejemplo final, intente entenderlo.