Документи використовують присвоєння за посиланням (= &), але чи потрібно це для PHP 5?


12

Я помітив у документації Joomla, наприклад, для JFactory / getSession , що в прикладах використовується присвоєння посилання ( =&), а не просте призначення ( =).

$session =& JFactory::getSession();

Це просто застаріле або цілеспрямовано охоплює користувачів PHP 4?

Чи потрібно це в PHP 5? Або є щось, що стосується Joomla, що я не помітив?


Чудове запитання! Я часто замислювався, чи слід використовувати символ рівності та амперсанд або просто символ рівності.
— TryHarder

Деякі документи не оновлюються. Коли ви щось помітите, просто натисніть кнопку редагування, це вікі.
— Валентин Деспа

Відповіді:


9

Це було використано для PHP4 разів. Починаючи з PHP5, об'єкти призначаються посиланням, тому немає необхідності робити це явно.


1
у php 5 це призводить до багатьох суворих стандартних попереджень, щоб вони також були, і їх багато в ядрі Joomla, іноді спричиняючи веселі часи, коли ви переходите на звітування про помилки розвитку. Ще одна з тих змін у PHP, що ускладнює зворотну сумісність.
— Джордан Рамстад

У Joomla 1.5 це погано, оскільки це було написано для підтримки PHP 4.3 up. З 2.5 і 3.x кількість E_STRICTпомилок у ядрі мінімальна, якщо така є.
— Майкл

1
Дякую, я припускав, що це, мабуть, був похміллям PHP4, але з Joomla 1.6+, що вимагає PHP5 +, я починав замислюватися. Незначна точка, але об'єкти насправді не "присвоєні посиланням" у PHP5. Оператор присвоєння посилань не є reqd (у більшості випадків), оскільки екземпляри класу зберігаються по-різному в PHP5. (Екземпляри класу містять "ідентифікатор об'єкта", а не саме значення, як у PHP4.) "Ідентифікатор об'єкта" призначається в PHP5, а не значення об'єкта. Чистий результат схожий, але є відмінності.
— MrWhite
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.