Ссылки в PHP позволяют одной переменной указывать на ту же область памяти, что и другая переменная. Они создаются с помощью амперсанда (&).
Объявление ссылки
Код |
---|
$a = 10; $b = &$a; // Теперь $b ссылается на $a $b = 20; echo $a; // 20, так как $b изменяет значение $a |
Ссылки часто используются для передачи аргументов по ссылке, чтобы изменять оригинальное значение переменной внутри функции.
Код |
---|
function addFive(&$num) { $num += 5; } $a = 10; addFive($a); echo $a; // 15 |
Код |
---|
function &getValue(&$arr, $index) { return $arr[$index]; } $array = [1, 2, 3]; $val = &getValue($array, 1); $val = 42; print_r($array); // [1, 42, 3] |
Обычно, когда вы присваиваете одну переменную другой, в PHP создается копия:
Код |
---|
$x = 5; $y = $x; // Копия $y = 10; echo $x; // 5 (не изменилось) |
Код |
---|
$x = 5; $y = &$x; // Ссылка $y = 10; echo $x; // 10 (изменилось) |
✅ Когда нужно передавать большие массивы/объекты в функцию без копирования.
✅ Когда нужно изменить переменную внутри функции.
❌ Не стоит злоупотреблять ссылками, так как они могут усложнить отладку кода.