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?


Ś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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.