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

Блог-note: заметки разработчика

FTP доступ на Виртуальной машине Битрикс

Бывает что нужно открыть FTP доступ к заранее известной папке на сайте под управлением 1С Битрикс, который работает на в...

Очистить брошенные корзины с помощью API 1С-Битрикс

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

Если товар в корзине, поменять значение input на "В корзине"

Если Вам нужно поменять текст на кнопке, добавляющей товар в корзину, достаточно воспользоваться методом API "CSaleBaske...

Фотогалерея на базе компонента новостей, с fancybox.

Это заметка обновление к очень старой, уже имеющейся на сайте. Сделаем что-то типа фотогалереи на базе встроеннного в би...

Input Type File, множественный с дропзоной и показом превью

Задача: Сделать возможность загрузки файлов в множественный input type="file" c помощью drag&drop и показом превью загру...

Моментальная фильтрация на AJAX в умном фильтре 1С-Битрикс

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

Удалить всех пользователей которые не делали заказов в магазине 1С-Битрикс

Задача: сайт проработал 7 лет и все время на нем была открытая регистрация, создано много мертвых учетных записей (б...

Заполнить инфоблок брендов из свойства инфоблока с товарами

Задача: в интернет-магазине есть инфоблок с товарами, загружаемый из 1С, у которого заполнено свойство "Производите...

Минимальная сумма заказа в корзине и оформлении заказа в 1С-Битрикс

В этой заметке добавим возможность установки минимальной суммы заказа, в новом шаблоне корзины на 1С-Битрикс.