@Nentra

Как писать условие if если очень много значений для проверки, а нужно чтобы они за экран не залезали, не превращались в очень длинную строку?

Как писать условие if если очень много значений для проверки, а нужно чтобы они за экран не залезали, не превращались в очень длинную строку?
  • Вопрос задан
  • 209 просмотров
Пригласить эксперта
Ответы на вопрос 3
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Это очень хороший вопрос!

Для длинных условий можно и нужно использовать такую замечательную практику, как именованные условия!
В большинстве случаев, когда условия не зависят друг от друга, можно просто присвоить результат вычисления условия переменной с обязательно говорящим именем, и дальше уже использовать эти переменные:

$dateIsValid = $obj->getDate() >= getCurrentDate();
$balanceOk = $obj->getBalance() > 0;
// Любые другие условия
if ($dateIsValid && $balanceOK) ...


Это повышает читабельность не только сокращая само тело условного оператора, но в первую очередь превращая его в связный текст!

Если же условия зависят друг от друга, то можно оформлять их в виде функций (методов). И тогда они не будут выполнены, если до них не дойдет очередь.
Ответ написан
delphinpro
@delphinpro Куратор тега PHP
frontend developer
PSR-2: https://www.php-fig.org/psr/psr-2/
PSR-12: https://www.php-fig.org/psr/psr-12/

if (
    $expr1
    && $expr2
) {
    // if body
} elseif (
    $expr3
    && $expr4
) {
    // elseif body
}
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
It depends.
Абстрактных решений тут не будет, всё зависит от того, что это именно за условия.
Из стандартных методов - упрощение логических выражений, вынесение условий в функции, замена проверок вида x == 1 || x == 2 || ... || x == n на [1, 2, ..., n].includes(x) и т.п.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽