> В чем разница передачи по значению и по ссылке в PHP (PHP)
Уровень: middle · Роль: backend · Язык: PHP · Категория: Технические вопросы
Компании: vanta
Стек: PHP
> Пример ответа
Разница между передачей по значению и по ссылке в PHP заключается в том, как переменная передаётся в функцию и как изменения внутри функции влияют на исходную переменную.
Передача по значению - это поведение по умолчанию. В функцию передаётся копия значения переменной. Любые изменения параметра внутри функции не затрагивают исходную переменную вне её. Например:
PHPfunction addTen($num) {$num += 10;}$x = 5;addTen($x);echo $x; // 5 - значение не изменилось
Передача по ссылке - в функцию передаётся ссылка на ту же область памяти, где хранится исходная переменная. Для этого в объявлении функции перед параметром ставится амперсанд &. Изменения параметра внутри функции напрямую меняют исходную переменную:
PHPfunction addTenByRef(&$num) {$num += 10;}$x = 5;addTenByRef($x);echo $x; // 15 - значение изменилось
Ключевые моменты:
- Передача по ссылке экономит память при работе с большими данными (например, массивами), так как не создаётся копия.
- Однако она может привести к неожиданным побочным эффектам, поэтому её следует использовать осознанно.
- В PHP объекты (экземпляры классов) всегда передаются по ссылке (начиная с PHP 5), но это не совсем то же самое: передаётся идентификатор объекта, а не сама переменная.
> Похожие задачи по PHP
Какие минусы использования магических методов в PHP
Для чего нужна иммутабельность
Как устроен процесс деплоя и инфраструктура
Какие есть способы оптимизации тяжелых запросов к базе данных
> Похожие задачи по backend
Какие минусы использования магических методов в PHP
Для чего нужна иммутабельность
Как устроен процесс деплоя и инфраструктура
Какие есть способы оптимизации тяжелых запросов к базе данных
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью