aleksei13b
@aleksei13b
junior-разработчик

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

Читаю документацию по присваиванию по сылке, там есть такой пример, но нет обьяснения механизма. На первый взгляд кажется что значения должны быть одинаковыми, но они разные... Если не сложно объясните пожалуйста доходчиво.
$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
  • Вопрос задан
  • 68 просмотров
Решения вопроса 1
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
Это надо воспринимать как "переменная ссылается (указывает) на область в памяти"
Если совсем просто, то в ячейку памяти записали число 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.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
25 апр. 2024, в 09:29
2500 руб./за проект
25 апр. 2024, в 09:27
4000 руб./за проект
25 апр. 2024, в 09:20
10000 руб./за проект