Ну само по себе внутреннее действие, что производит ПХП-машина = неважно.. Но все таки постараюсь пояснить, что когдато выяснил из исходников (инфа может быть вполне устарелой).
Обычное (не скажу точный термин
) создание объекта класса.
В этом месте
ПХП-машина создает временную переменную объекта класса myClass (условно tmp).
А здесь
создает
копию этой временной переменной (копирует объект переменной tmp в переменную obj, тип переменной obj назначается "объект класса".
Ну и
временная переменная tmp уничтожается
Ну и посмотрим что происходит при создании объекта класса по ссылке:
В этом месте
ПХП-машина так же создает временную переменную tmp объекта класса.
А вот в этом месте
создает
переменную/ссылку на объект переменной tmp.
Ну и
Здесь временный объект переменной tmp не уничтожается, т.к. существуют на него ссылки.
Допустим:
уничтожаем ссылку на объект в переменной tmp. Автоматически уничтожается и временный объект в перменной tmp.
Вывод:
Поведение: совершенно одинаковое.
Быстродействие: "= & new" незначительно быстрее, чем "= new"
Обращение к объекту: при "= & new" медленее
Примечание: в ПХП5 операция "= & new" выполняется так же как и "= new"
IMXO: при "=" выгоднее былоб переменную tmp
переименовывать в obj