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?


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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.