Morfeey
@Morfeey

Значение контекста?

Имеется метод:
private function isCitySubmited(Request $request, City &$city)

Что в нем означает "&" ?
  • Вопрос задан
  • 78 просмотров
Решения вопроса 3
Stalker_RED
@Stalker_RED
Передача параметра по ссылке, а не по значению.
php.net/manual/ru/language.references.pass.php

$test = 0;

function a($x){
  $x++;
  echo 'a' . $x . PHP_EOL; // выведет 1, но оригинальное значение $test не изменится
}
function b(&$x){ // а здесь передается по ссылке
  $x++;
  echo 'b' . $x . PHP_EOL;
}

// эксперимент
echo $test . PHP_EOL; // 0
a($test); // a1
echo $test . PHP_EOL; // 0
b($test) . PHP_EOL; // b2
echo $test . PHP_EOL; // 1, потому что переменная передавалась по ссылке, и была изменена.
sandbox.onlinephpfunctions.com/code/9f64b57f889f10...
Ответ написан
Комментировать
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
Возвращает значение по ссылке т.е.
$city = 1;
isCitySubmited(Request $request, City &$city) // в методе изменяется на $city = 2
echo $city; // результат 2

php.net/manual/ru/language.references.whatdo.php
Ответ написан
Комментировать
gobananas
@gobananas
finishhim.ru
Ссылка, что бы переменная не копировалась, а взялась из уже имеющейся в памяти иногда такой подход вредит https://habrahabr.ru/post/43489/

И ещё https://habrahabr.ru/post/134784/
В документации по PHP сказано: Не используйте возврат по ссылке для увеличения производительности. Ядро PHP само занимается оптимизацией.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы