Каждая переменная является ссылкой на значение. Обычно значение копируется при его использовании, но с &
копируется ссылка .
Предположим, у вас есть следующая переменная:
$original = 'john';
Если вы присваиваете значение из $ datasql переменной, это значение копируется:
$text = $original;
Если назначить ссылку , значение не копируется, но ссылается:
$text = & $original;
Это означает, что $text
указывает на значение $original
. Теперь, если вы сбросили $original
, содержимое $text
остается в силе:
unset($original);
echo $text; // john
Это потому, что PHP знает, что все еще есть ссылка на значение $original
, поэтому он удаляет переменную $original
в качестве имени, но не содержимое.
Ваш пример похож, за исключением того, что переменная явно не сброшена, а перезаписана. Это ссылка на значение, как и любая другая переменная.