Документы используют назначение по ссылке (= &), но нужно ли это в PHP 5?


12

В документации по Joomla, например, для JFactory / getSession , я заметил , что в примерах используется метод assign-by-reference ( =&), а не простой метод assignment ( =).

$session =& JFactory::getSession();

Это просто устарело или целенаправленно распространяется на пользователей PHP 4?

Это необходимо в PHP 5? Или есть что-то связанное с Joomla, что я упустил из виду?


Отличный вопрос! Я часто задавался вопросом, должен ли я использовать символ равенства и амперсанд или просто символ равенства.
TryHarder

Некоторые документы не обновляются. Когда вы заметили что-то, просто нажмите кнопку редактирования, это вики.
Валентин Деспа

Ответы:


9

Это было использовано для PHP4 раз. Начиная с PHP5, объекты назначаются по ссылке, поэтому нет необходимости делать это явно.


1
в php 5 он также содержит много предупреждений о строгих стандартах, и их много в ядре Joomla, что иногда вызывает забавные моменты, когда вы переключаетесь на отчеты об ошибках разработки. Еще одно из тех изменений в PHP, которое затрудняет обратную совместимость.
Джордан Рамстад

Это плохо в Joomla 1.5, так как он был написан для поддержки PHP 4.3 и выше. С 2.5 и 3.x количество E_STRICTошибок в ядре минимально, если таковые имеются.
Майкл

1
Спасибо, я предположил, что это должно быть похмелье в PHP4, но с Joomla 1.6+, требующей PHP5 +, я начал задумываться. Незначительный момент, но на самом деле объекты не «назначаются по ссылке» в PHP5. Оператор присваивания по ссылке не является требованием (в большинстве случаев), потому что экземпляры классов хранятся в PHP5 по- разному . (Экземпляры класса содержат «идентификатор объекта», а не само значение, как в PHP4.) «Идентификатор объекта» назначается в PHP5, а не значение объекта. Чистый результат похож, но есть различия.
MrWhite
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.