besogonskiy
@besogonskiy
работаю php laravel разработчиком.

Как сокращенно записать условие в случае если значение не пустое?

Имеется код написанный по старинке:

$x = someFunction(.....);
if($x) {
  doSomething();
}


Как в последних версиях php записать условие одной строчкой ну там есть же тернарные операторы и их сокращенная запись. в доках смотрю - там разные версии.
  • Вопрос задан
  • 82 просмотра
Решения вопроса 1
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Важно понимать, что в РНР нет записи условия "одной строчкой".
Тернарный оператор - это не условие. Это оператор, который возвращает определенное значение в зависимости от условия. Если ваш код никакое значение не возвращает, то и тернарный оператор вам не подходит.

Поэтому для приведенного кода ничего сокращать не нужно. Это приведет только к потере читабельности. Которая всегда важнее, чем экономия на строчках.
И вариант с тернарным оператором, и предложенный в комментариях трюк с логическим оператором && только ухудшат читабельность.

Использование конструкции if - это совершенно нормальная практика. И думать, что так пишут только "по-старинке" - это какая-то дурацкая фантазия.

В принципе варианты сократить код всегда есть. Но для этого надо приводить конкретный пример.
А для вот такого общего случая и ответ будет общий - все оставить как есть.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Vitsliputsli
Если someFunction возвращает bool, то
if (someFunction(.....)) {
  doSomething();
}

Если не bool, то прописать условие.
Ответ написан
Комментировать
@mrStrike
ну подумать над === и $fn1 = fn($x) => $x + $y;
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
01 мая 2024, в 02:11
5000 руб./за проект
01 мая 2024, в 00:29
2000 руб./за проект
01 мая 2024, в 00:20
15000 руб./за проект