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 само занимается оптимизацией.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы