Що роблять посилання

Є три основні операції з використанням посилань: присвоєння за посиланням передача за посиланням і повернення за посиланням. Цей розділ познайомить вас із цими операціями та надасть посилання для подальшого вивчення.

Присвоєння за посиланням

Перша з них - посилання PHP дозволяють створити дві змінні, що вказують на те саме значення. Таким чином, коли виконується таке:

Loading...

то $a вказує на те саме значення як і $b.

Зауваження :

$a та $b тут абсолютно еквівалентні, але це не означає, що $a вказує на $b або навпаки. Це означає, що $a і $b вказують на те саме значення.

Зауваження :

При присвоєнні, передачі чи поверненні неініціалізованої змінної за посиланням, відбувається її створення.

Приклад #1 Використання посилань з неініціалізованими змінними

Loading...

Такий самий синтаксис може використовуватися у функціях, що повертають посилання, та з оператором new :

Loading...

Використання того ж синтаксису з функцією, яка не повертає за посиланням, призведе до помилки, як і її використання з результатом оператора new. Хоча об'єкти передаються як покажчики, це не те саме, що посилання, як описано в розділі Об'єкти та посилання

Увага

Якщо змінної, оголошеної всередині функції як global, буде присвоєно посилання, воно буде видно лише у функції. Щоб уникнути цього, використовуйте масив $GLOBALS

Приклад #2 Надання посилань глобальним змінним всередині функції

Loading...

Думайте оglobal $var; як про скорочення від $var =& $GLOBALS['var'];Таким образом, присвоение$var інший посилання впливає лише локальну змінну.

Зауваження :

При використанні змінної-посилання в foreach, Змінюється зміст, на яке вона посилається.

Приклад #3 Посилання та foreach

Loading...

Хоча у виразах, створюваних за допомогою конструкції array(), немає явного присвоєння за посиланням, проте вони можуть поводитися як такі, якщо вказати префікс & для елементів масиву Приклад:

Loading...

Проте слід зазначити, що посилання в масивах потенційно небезпечні. При звичайному (не за посиланням) присвоєння масиву посилання всередині цього масиву зберігаються. Це також стосується і викликів функцій, коли масив передається за значенням. Приклад:

Loading...

Інакше кажучи, поведінка окремих елементів масиву залежить від типу присвоєння цього масиву.

Передача за посиланням

Друге, що роблять посилання – передача параметрів за посиланням. При цьому локальна змінна в функції і змінна в області видимості, що викликає, посилаються на один і той же вміст. Приклад:

Loading...

Цей код надасть $a значення 6. Це відбувається, тому що у функції foo змінна $var посилається на той же вміст, що й змінна $a. Дивіться також детальне пояснення передачі за посиланням

Повернення за посиланням

Третє, що можуть робити посилання – це повернення за посиланням