Ссылки и переменные в PHP

Как уже отмечалось ранее, в PHP нет такого понятия, как указатель. Хорошо это или плохо — сложно сказать. То, что является достоинством C — указатели — одновременно является его недостатком — уж слишком там все запутано, ошибки, связанные с указателями, очень трудно найти. Лично мне больше нравится идеология указателей в языке Pascal: вы можете нормально работать, как с указателями, так и без них. В любом случае, большее, на что нам приходится рассчитывать в PHP — это ссылочные переменные или просто ссылки. Ссылки бывают двух типов: символические и жесткие. Последний тип ссылок появился в четвертой версии интерпретатора.

Жесткие ссылки

Жесткая ссылка — это просто псевдоним имени другой переменной. Ссылки на ссылку на переменную (многоуровневые ссылки), как в языке Perl, не поддерживаются. Для создания жесткой ссылки используется оператор &:

Нетрудно догадаться, что выведет программа — 66. Для разрыва связи между переменной и ссылкой используется функция UnSet:

UnSet ($link);

Саму переменную нельзя удалить до тех пор, пока на нее ссылается хотя бы одна ссылка.

Символические ссылки

Символическая ссылка — это обыкновенная переменная, содержащая имя другой переменной. Для доступа к значению ссылки используется двойной знак доллара $$:

Я не рекомендую использовать символические ссылки, их нужно использовать в самых крайних случаях, которых будет немного. Использование символических ссылок может и без того запутать запутанную программу. Лучше использовать жесткие ссылки: хотя бы исходя из того, что для них нужен один оператор $. А вообще старайтесь не использовать ссылки — так ваша жизнь станет чуть проще.