Dokumenty używają przypisywania przez odniesienie (= &), ale czy jest to konieczne w PHP 5?

12

Zauważyłem w dokumentacji Joomla, na przykład dla JFactory / getSession , że w przykładach użyto przypisania przez referencję ( =&), a nie zwykłego przypisania ( =).

$session =& JFactory::getSession();

Czy to jest po prostu nieaktualne, czy celowo obejmuje użytkowników PHP 4?

Czy jest to konieczne w PHP 5? A może przeoczyłem coś związanego z Joomla?

MrWhite
źródło
Świetne pytanie! Często zastanawiałem się, czy powinienem używać symbolu równości i znaku handlowego lub tylko symbolu równości.
TryHarder
Niektóre dokumenty nie są aktualizowane. Gdy coś zauważysz, po prostu naciśnij przycisk edycji, jest to wiki.
Valentin Despa

Odpowiedzi:

9

Użyto tego razy PHP4. Począwszy od PHP5, obiekty są przypisywane przez referencje, więc nie trzeba tego robić jawnie.

Dmitry Rekun
źródło
1
w php 5 powoduje to, że ma wiele ostrzeżeń o surowych standardach, a jest ich dużo w rdzeniu Joomla, czasami powodując zabawne czasy, kiedy przechodzisz na raportowanie błędów programistycznych. Kolejna z tych zmian w PHP, która utrudnia kompatybilność wsteczną.
Jordan Ramstad
W Joomla 1.5 jest źle, ponieważ został napisany do obsługi PHP 4.3 w górę. W wersjach 2.5 i 3.x liczba E_STRICTbłędów w rdzeniu jest minimalna, jeśli w ogóle występuje.
Michael
1
Dzięki, założyłem, że to musiał być kac PHP4, ale z Joomla 1.6+ wymagającym PHP5 + zacząłem się zastanawiać. Drobny punkt, ale w rzeczywistości obiekty nie są „przypisywane przez referencje” w PHP5. Operator przypisania przez odniesienie nie jest wymagany (w większości przypadków), ponieważ instancje klas są przechowywane w PHP5 inaczej . (Instancje klas zawierają „identyfikator obiektu” zamiast samej wartości, jak w PHP4.) „PHP identyfikator” jest przypisywany w PHP5, a nie wartość obiektu. Wynik netto jest podobny, ale istnieją różnice.
MrWhite