Los documentos usan asignar por referencia (= &) pero ¿es esto necesario con PHP 5?


12

He notado en la documentación de Joomla, como para JFactory / getSession , que los ejemplos usan asignar por referencia ( =&), en lugar de una simple asignación ( =).

$session =& JFactory::getSession();

¿Está desactualizado o cubre a propósito a los usuarios de PHP 4?

¿Es esto necesario en PHP 5? ¿O hay algo relacionado con Joomla que he pasado por alto?


Gran pregunta! A menudo me he preguntado si debería estar usando el símbolo de igualdad y el signo de unión o simplemente el símbolo de igualdad.
TryHarder

Algunos documentos no están actualizados. Cuando veas algo, solo presiona el botón de edición, es un wiki.
Valentin Despa

Respuestas:


9

Esto se usó para PHP4 veces. Desde PHP5 en adelante, los objetos se asignan por referencia, por lo que no hay necesidad de hacerlo explícitamente.


1
en php 5 también causa muchas advertencias de estándares estrictas, y hay muchas de ellas en el núcleo de Joomla, lo que a veces causa momentos divertidos cuando cambias a informes de errores de desarrollo. Otro de esos cambios en PHP que dificulta la compatibilidad con versiones anteriores.
Jordan Ramstad

Es malo en Joomla 1.5 ya que fue escrito para soportar PHP 4.3. Con 2.5 y 3.x, la cantidad de E_STRICTerrores en el núcleo es mínima, si la hay.
Michael

1
Gracias, supuse que debía ser una resaca de PHP4, pero con Joomla 1.6+ que requiere PHP5 + comencé a preguntarme. Punto menor, pero los objetos no están realmente "asignados por referencia" en PHP5. El operador de asignación por referencia no es requerido (en la mayoría de los casos) porque las instancias de clase se almacenan de manera diferente en PHP5. (Las instancias de clase contienen un "identificador de objeto" en lugar del valor en sí mismo, como en PHP4.) Se asigna un "identificador de objeto" en PHP5, en lugar del valor del objeto. El resultado neto es similar, pero hay diferencias.
MrWhite
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.