Docs verwenden Assign by Reference (= &), aber ist dies bei PHP 5 notwendig?

12

Ich habe in der Joomla-Dokumentation, wie zum Beispiel für JFactory / getSession , festgestellt , dass die Beispiele Assign-by-Reference ( =&) anstelle einer einfachen Zuweisung ( =) verwenden.

$session =& JFactory::getSession();

Ist dies nur veraltet oder deckt es gezielt Benutzer von PHP 4 ab?

Ist das unter PHP 5 notwendig? Oder gibt es etwas mit Joomla zu tun, das ich übersehen habe?

Herr weiß
quelle
Gute Frage! Ich habe mich oft gefragt, ob ich das Gleichheitszeichen und das Et-Zeichen oder nur das Gleichheitszeichen verwenden soll.
TryHarder
Einige Dokumente werden nicht aktualisiert. Wenn Sie etwas entdecken, klicken Sie einfach auf den Bearbeiten-Button, es ist ein Wiki.
Valentin Despa

Antworten:

9

Dies wurde für PHP4-Zeiten verwendet. Ab PHP5 werden Objekte per Referenz zugewiesen, sodass dies nicht explizit erforderlich ist.

Dmitry Rekun
quelle
1
In PHP 5 führt dies dazu, dass viele strenge Standard-Warnungen ebenfalls vorhanden sind, und im Joomla-Kern ist eine Menge davon enthalten, was manchmal zu unterhaltsamen Zeiten führt, wenn Sie auf die Berichterstellung von Entwicklungsfehlern umsteigen. Eine weitere dieser Änderungen in PHP, die die Abwärtskompatibilität erschweren.
Jordan Ramstad
Es ist schlecht in Joomla 1.5, da es geschrieben wurde, um PHP 4.3 zu unterstützen. Mit 2.5 und 3.x ist die Anzahl der E_STRICTFehler im Kern minimal, falls vorhanden.
Michael
1
Danke, ich hatte angenommen, dass es ein PHP4-Kater gewesen sein muss, aber mit Joomla 1.6+, das PHP5 + erfordert, begann ich mich zu wundern. Untergeordneter Punkt, aber Objekte werden in PHP5 nicht "durch Verweis zugewiesen". Der Assign-by-Reference-Operator wird (in den meisten Fällen) nicht benötigt, da Klasseninstanzen in PHP5 unterschiedlich gespeichert werden . (Klasseninstanzen enthalten einen "Objektbezeichner" anstelle des Werts selbst, wie in PHP4.) Ein "Objektbezeichner" wird in PHP5 anstelle des Objektwerts zugewiesen . Das Nettoergebnis ist ähnlich, es gibt jedoch Unterschiede.
MrWhite