Что означает = и означает в PHP?

Рассматривать:

$smarty =& SESmarty::getInstance(); 

Что такое & for?

Solutions Collecting From Web of "Что означает = и означает в PHP?"

Он проходит по ссылке. Это означает, что он не создаст копию переданного значения.

См. http://php.net/manual/en/language.references.php (см. Ответ Адама)

Обычно, если вы передаете что-то вроде этого:

 $a = 5; $b = $a; $b = 3; echo $a; // 5 echo $b; // 3 

Исходная переменная ( $a ) не будет изменена, если вы измените вторую переменную ( $b ). Если вы пройдете по ссылке:

 $a = 5; $b =& $a; $b = 3; echo $a; // 3 echo $b; // 3 

Оригинал также изменен.

Что бесполезно при обходе объектов, потому что по умолчанию они будут переданы по ссылке.

В PHP 4 это вроде (неловко) связано с двумя переменными.

 $j = 'original'; $i =& $j; $i = 'modified'; echo $j; // The output is 'modified' 

Точно так же …

 $j = 'original'; $i =& $j; $j = 'modified'; echo $i; // The output is 'modified' 

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

Ссылки используются для переменных псевдонимов и необходимы для эффективного использования старой объектной системы.

В PHP 4 объекты ведут себя как любой другой тип значения, т. Е. Присваивание создаст копию объекта. Если вы хотели этого избежать, вам нужно было использовать ссылку, как в вашем примере кода.

С PHP 5 переменные объекта больше не содержат самого объекта, но дескриптор (идентификатор объекта AKA) и присваивание копируют только дескриптор. Использование ссылки больше не требуется.