У меня проблема, когда я пытаюсь вызвать функцию, которая ожидает ссылку в качестве параметра. Функция работает совершенно нормально, когда я передаю ей какую-либо переменную, однако, если я передаю ей переменную с помощью средства? и: if/else операторов, я получаю ошибку Cannot pass parameter 1 by reference
.PHP передать переменную по ссылке, используя?: Операторы
Функция выглядит следующим образом:
public function testFunction(&$var) {
//It does nothing.
}
Теперь я пытаюсь вызвать функцию следующим образом:
$yes = 'yes';
$no = 'no';
$this->testFunction(
TRUE ? $yes : $no
);
Однако если я $this->testFunction($yes)
это делает работу. Что я здесь делаю неправильно? Могу ли я использовать '?' и ':' для этого, и если нет, то каковы мои альтернативы, чтобы убедиться, что testFunction
получит ссылку на правильные данные?
Это потому, что вы не передавая переменную, но его значение .. поэтому выражение си оценивается первым и переданный аргумент является строкой, а не переменной –