Глосарій

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

У PHP змінні за замовчуванням передаються за значенням: функція отримує копію. При передачі за посиланням (&$var) функція працює з оригінальною змінною.

Приклад

function addTen(int $n): void {
  $n += 10; // змінює лише локальну копію
}
function addTenRef(int &$n): void {
  $n += 10; // змінює оригінал
}

$x = 5;
addTen($x);    // $x = 5
addTenRef($x); // $x = 15

Об'єкти — особливий випадок

Об'єкти в PHP передаються за handle (вказівник на об'єкт), а не за значенням і не за посиланням. Зміна властивостей об'єкта всередині функції — видима зовні. Але $obj = new OtherClass() — не видима (замінює локальний handle).

Коли використовувати

Рідко потрібно в сучасному коді. Краще повертати нове значення з функції, ніж мутувати аргумент. Виправдано для sort()-подібних функцій або великих структур для уникнення копіювання.