kimono
@kimono
Web developer

Какие есть функции обработки переменных с передачей по ссылке в PHP?

Вместо вот таких конструкций:
if (isset($hello) && $world){
  echo $hello;
} else {
  echo 'empty';
}
// или в некоторых случаях
echo isset($hello) ? $hello : 'empty';

Можно использовать функцию:
function variable(&$var){
  return $var;
}
// или подобную, но использующую также значение по умолчанию
function variable(&$var, $default = null){
  return !is_null($var) ? $var : $default;
}

Использовать можно так:
// даже если переменная $hello не была нигде ранее объявлена, такой код будет работать
echo variable($hello);
// или такой
echo variable($hello, 'empty');

Вроде удобно, но возможно уже есть какие-то встроенные функции в PHP, наподобие sprintf('%s', $hello), но с возможностью передачи по ссылке, о которой я забыл?
  • Вопрос задан
  • 144 просмотра
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Вместо вот таких конструкций:


Для начала замечу что такие конструкции допустимы когда мы работаем с массивами, "необъявленных" переменных у нас быть не должно.

Затем скажу что если вы посмотрите документацию к PHP7 то второй пример будет выглядеть так:

echo isset($hello) ? $hello : 'empty';
// vs
echo $hello ?? 'empty';


Первый пример странный поскольку я не знаю что такое $world.

Использование ссылок в принципе должно происходить как исключение, то есть когда наша функция должна возвращать более одного значения (preg_match как пример). В остальных случаях их не стоит использовать так как они пораждают побочные эффекты и чем больше их будет тем сложнее будет работать с кодом.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

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

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