Duplicar posible:
In PHP can someone explain cloning vs pointer reference?Si se pasan objetos por alias, ¿cuándo pasaría por referencia?
Según http://php.net/manual/en/language.oop5.references.php
Uno de los puntos clave de PHP 5 POO que a menudo se menciona es que "los objetos se pasan por referencias por defecto ". Esto no es del todo cierto. Esta sección rectifica ese pensamiento general usando algunos ejemplos.
Una referencia de PHP es un alias, que permite que dos variables diferentes escriban en el mismo valor. A partir de PHP 5, una variable de objeto ya no contiene el objeto como valor. Solo contiene un identificador de objeto que permite a los usuarios de acceso buscar el objeto real. Cuando un objeto se envía por argumento, se devuelve o se asigna a otra variable, las diferentes variables no son alias: contienen una copia del identificador, que apunta al mismo objeto.
Si los objetos se pasan por alias o controlador, entonces, ¿en qué situación le gustaría pasar por referencia?
myFunc($obj); // Pass by alias/handler
myFunc(& $obj); // Pass by reference (when would you do this?)
myFunc(clone $obj); // Create a new object
¿Cuáles son los diferentes casos de uso para cada uno de estos?
Creo que esta conferencia cubrió el tema: http://www.youtube.com/watch?v=bxxIXPc9IR8 (entre otras cosas) –
Nota, el tiempo de referencia de la llamada por referencia ha quedado obsoleto desde al menos 5.3, si no antes La función declara a qué argumentos espera que se refiera, y la persona que llama no tiene que especificar que son referencias, y, de hecho, no debería. – cHao