Документи використовують присвоєння за посиланням (= &), але чи потрібно це для 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.