Присваивание по сылке тонкости?

Читаю документацию по присваиванию по сылке, там есть такой пример, но нет обьяснения механизма. На первый взгляд кажется что значения должны быть одинаковыми, но они разные... Если не сложно объясните пожалуйста доходчиво.
$a = 1;
$c = 2;
$b =& $a; // $b points to 1
$a =& $c; // $a points now to 2, but $b still to 1;
echo $a, " ", $b;
// Output: 2 1
  • Вопрос задан
  • 66 просмотров
Решения вопроса 1
nokimaro
@nokimaro Куратор тега PHP
Это надо воспринимать как "переменная ссылается (указывает) на область в памяти"
Если совсем просто, то в ячейку памяти записали число 1 когда вызвали $a = 1;
$b =& $a; - теперь $b указывает на ту же ячейку памяти, к которой была привязана переменная $a
$a =& $c; - теперь $a указывает на ячейку памяти с которой была связана $c, при этом изначально ячейка памяти которая была выделена под 1 так и осталась и до сих пор связана с $b.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
kimono
@kimono
Web developer
$a = 1;
$c = 2;

- у нас есть значение 1 и a, которая за ним смотрит.
$b =& $a;
- теперь у нас есть ещё и b, которая так же как и a смотрит за значением 1.
$a =& $c;
Теперь a смотрит вместе с c за значением 2, при этом b смотрит по-прежнему за значением 1.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Spice IT Recruitment Москва
До 230 000 ₽
ImageSpark Санкт-Петербург
от 60 000 ₽
FrozenEon Киев
от 1 500 до 3 000 $