Respuesta
Pasa por referencia. Lo que significa que no creará una copia del valor pasado.
Ver: http://php.net/manual/en/language.references.php (Véase la respuesta de Adán)
Por lo general, si pasa algo como esto:
$a = 5;
$b = $a;
$b = 3;
echo $a; // 5
echo $b; // 3
La variable original ($a
) no se modificará si cambia la segunda variable ($b
). Si pasa por referencia:
$a = 5;
$b =& $a;
$b = 3;
echo $a; // 3
echo $b; // 3
También se cambió el original.
Lo cual es inútil al pasar por los objetos, ya que se pasarán por referencia de manera predeterminada.
Los objetos PHP5 * no * se pasan por referencia de forma predeterminada: más bien, un identificador de objeto se pasa por valor (similar a la semántica de 'referencia' de Java); ver el manual para más detalles: http://www.php.net/manual/en/language.oop5.references.php – Christoph
Gracias, me parece un poco inútil en este momento – JasonDavis
Realmente no tiene sentido. La razón principal por la que las personas los usaban era para no requerir una función para devolver una variable, sino que simplemente tenían que modificar la variable. –
En PHP 4, se asocia (torpemente) dos variables.
$j = 'original';
$i =& $j;
$i = 'modified';
echo $j; // The output is 'modified'
Del mismo modo ...
$j = 'original';
$i =& $j;
$j = 'modified';
echo $i; // The output is 'modified'
se hizo Algo de esto un poco menos desagradable cuando se trata de objetos en PHP 5, pero creo que el corazón de la misma es el mismo, por lo que estos ejemplos deben aún ser valido
References se usan para alias de variables y fueron necesarios para usar el viejo sistema de objetos de manera eficiente.
En PHP 4, los objetos se comportan como cualquier otro tipo de valor, es decir, la asignación crearía una copia del objeto. Si quería evitar esto, tenía que usar una referencia como en su código de ejemplo.
Con PHP 5, las variables de objeto ya no contienen el objeto en sí, pero un identificador de objeto (AKA) y la asignación solo copiarán el identificador. El uso de una referencia ya no es necesario.
- 1. ¿Qué significa <? = Mean?
- 2. ¿Qué significa while (true) {mean en PHP?
- 3. ¿Qué significa el operador PHP = & mean?
- 4. javascript: ¿qué significa/* @ @ */mean?
- 5. ¿Qué significa/#!/Mean en URL?
- 6. ¿Qué significa/*! */Mean en C#?
- 7. ¿Qué significa: = mean en vb.net?
- 8. PHP - ¿Qué significa Warning: strpos() [function.strpos]: Empty delimiter in mean?
- 9. ¿Qué significa una sola | o & mean?
- 10. ¿Qué significa el encabezado HTTP If-None-Match: * mean?
- 11. Bundler: ¿Qué significa: require => nil en Gemfile mean?
- 12. ¿Qué significa la sintaxis "final String ... args" mean/do?
- 13. ¿Qué significa si [$? -eq 0] mean para scripts de shell?
- 14. ¿Qué significa '??' significa en C#?
- 15. ¿Qué significa "=>" en PHP?
- 16. Backslash en PHP: ¿qué significa?
- 17. ¿Qué significa '<? =' En PHP?
- 18. ¿Qué significa "EGPCS" en PHP?
- 19. ¿Qué significa "&" aquí en PHP?
- 20. ¿Qué significa $ this en PHP?
- 21. ¿Qué significa || = en Ruby?
- 22. PHP: ¿Qué significa `array (& $ this)`?
- 23. ¿Qué significa nuevo yo(); significa en PHP? código
- 24. ¿Qué significa este símbolo en PHP <? =
- 25. ¿Qué significa este "iif" en php?
- 26. ¿Qué significa esta firma (&) en PHP?
- 27. ¿Qué significa $ {} en la sintaxis de PHP?
- 28. ¿Qué significa la variable $ this en PHP?
- 29. ¿Qué significa! == operador de comparación en PHP?
- 30. ¿Qué significa & in & 2 en PHP?
Si necesita algo como esto en el futuro busque "operadores" en las referencias de ayuda de PHP, o un buen motor de búsqueda. –
También debe buscar algo llamado "Singleton". – cwallenpoole