PHP. Руководство по PHP. 2005
Что делают ссылкиПред.
Что делают ссылки
Ссылки в PHP дают возможность двум переменным ссылаться на одно содержимое. Например:
|
означает, что $a указывает на то же содержание, что и $b.
Замечание: $a и $b здесь абсолютно эквивалентны, но это не означает, что $a указывает на $b или наоборот. Это означает, что $a и $b указывают на одно место.
Замечание: При копировании массива ссылок, они не разыменовываются. Это также касается массивов, передаваемых функциям по значению.
Такой же синтаксис можно использовать и в функциях, возвращая ссылки, а так же в операторе new (начиная с PHP4.0.4):
|
Замечание: Если опустить &, это приведёт к копированию объекта. Если вы используете $this в классе, операция проводится над текущим экземпляром этого класса. Присвоение без & приведёт к копированию экземпляра, и $this будет работать с копией, что не всегда желательно. Обычно, вам нужно иметь 1 экземпляр, из соображений производительности и использования памяти.
Операция @, которая скрывает сообщения об ошибках, например в конструкторе @new, не может быть использована совместно с операцией & (&new). Это ограничение интерпретатора Zend.
Замечание: При использовании переменной-ссылки в foreach, изменяется содержание, на которое она ссылается.
Пример 21-2. Ссылки и foreach
|
Внимание | ||
- Сложные массивы в некоторых случаях могут копироваться вместо создания ссылок. например, следующий пример не будет работать как ожидалось.
|
Второе, что делают ссылки - передача параметров по ссылке. При этом локальная переменная в функции и переменная в области видимости вызывателя ссылаются на одно и то же содержимое. Пример:
|
Этот код присвоит $a значение 6. Это происходит, потому что в функции foo переменная $var ссылается на то же содержимое, что и переменная $a. См. также детальное объяснение передачи по ссылке.
Третье, что могут ссылк - возвращение значение по ссылке.
Ссылки. Разъяснения
Чем ссылки не являются
Отвечу на любые вопросы. С уважением, Дмитрий Владимирович.
⇪