Ссылки в PHP: как работают и зачем они нужны

Внимание! Все сообщения на форуме проходят модерацию. Ваше сообщение появится после проверки.
В PHP нет указателей в том смысле, в котором они существуют в C или C++ (то есть прямого доступа к памяти с возможностью арифметики указателей). Однако в PHP есть ссылки, которые работают схожим образом, позволяя нескольким переменным ссылаться на один и тот же участок памяти.

Ссылки в 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 (изменилось)
Когда использовать ссылки?
✅ Когда нужно передавать большие массивы/объекты в функцию без копирования.
✅ Когда нужно изменить переменную внутри функции.
❌ Не стоит злоупотреблять ссылками, так как они могут усложнить отладку кода.
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
 

Стоимость разработки на 1С-Битрикс:

Индивидуальная разработка магазина

от 350 000 руб. от 5-ти недель

Разработка магазина на 1С-Битрикс с нуля. Дизайн, сборка и оптимизация производительности под конкретный проект и требования. Реализация любого функционала без ограничений готовых решений.

Запуск сайта на готовом решении

от 150 000 руб. от 7-ми дней

Вариант для тех, кто не хочет тратить много средств на индивидуальный проект, и не имеет серьезных требований к сайту. Магазин, быстро запускается на базе одного из 200-та готовых решений.

Мобильное приложение

от 400 000 руб. от 5-ти недель

Разработка кроссплатформенного мобильного приложения, которое не уступает нативным решениям как в производительности, так и пользовательском опыте. Публикуется в AppStore, GooglePlay и RuStore

Сайт компании

от 300 000 руб. от 2-х недель

Корпоративный сайт с информационными разделами, каталогом товаров или услуг. Включает формы обратной связи карточек каталога, любое количество статичных и динамичных разделов.

Инфоресурс

от 300 000 руб. от 4-х недель

Информационный ресурс любой сложности. Сайт для СМИ, городской портал или многопользовательская доска объявлений. Внутренние форумы, блоги- по необходимости.

3D‑моделирование, визуализация

от 25 000 руб. от 3-х дней

По вашим фото, чертежам или описанию создадим 3D‑модели и отрендерим набор изображений для каталога товаров: общий вид, крупные планы и технические ракурсы или 360°‑обзор товара.