|
Crear referencias al interior del constructor puede llevar a resultados confusos. Esta sección tipo-tutorial le ayuda a evitar problemas.
<?php |
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 =&...
<?php |
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).
<?php |
Otro ejemplo final, intente entenderlo.
<?php |
El resultado del ejemplo seria:
clase A: 10 clase B: 10 clase B: 10 clase A: 11 clase B: 11 clase B: 11 |
Hosting by: hurra.com
Generated: 2007-01-26 18:00:52