Classes: в чём отличие между = и =&

[slon]

Guest
Classes: в чём отличие между = и =&

всегда при инициализации класса использовал данную конструкцию:
PHP:
$myclass = New MyClass;
Но неоднократно наталкивался на такой вариант:
PHP:
$myclass =& New MyClass;
Объясните пожалуйста в каких случаях что лучше использовать и в чем принципиальная разница.

О том что означает '=&' читал, но в сочетании с классами не понял смысла.
 

su1d

Старожил PHPClubа
PHP:
$myclass = new MyClass;
создаёт ДВЕ копии объекта: одна -- результат выполнения new, а вторая -- та, что пошла в $myclass, т.к. присваивание происходило по значению.

PHP:
$myclass =& new MyClass;
создаётся лишь одна копия -- та, что выдалась оператором new. она же идёт и в $myclass.

заметь, что в РНР5 уже не нужно использовать второй синтаксис, т.к. там операции с объектами уже автоматически идут по ссылке, и тебе не нужно отдельно указывать на это интерпретатору.
 

IntenT

SkyDiver
В мане про это целый туториал
http://www.php.net/manual/ru/language.oop.newref.php
 
Сверху