Задать вопрос

Как переписать повторяющиеся конструкции if?

Как можно оптимизировать повторяющиеся в коде конструкции if - if
<?php if (!empty($color_names)) { ?>
    let arr = <?= json_encode($color_names); ?>,
        thisClass = 'color';
    addList(arr, thisClass);
<?php } ?>

<?php if (!empty($mech_names)) { ?>
    let arr = <?= json_encode($mech_names); ?>,
        thisClass = 'mech';
    addList(arr, thisClass);
<?php } ?>

<?php if (!empty($upholstery_names)) { ?>
    let arr = <?= json_encode($upholstery_names); ?>,
        thisClass = 'upholstery';
    addList(arr, thisClass);
<?php } ?>

Заранее спасибо!
  • Вопрос задан
  • 275 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Можно так:
<?php
if (!empty($color_names)) echo("let arr = ".json_encode($color_names).", thisClass = 'color';\naddList(arr, thisClass);\n";
if (!empty($mech_names)) echo("let arr = ".json_encode($mech_names).", thisClass = 'mech';\naddList(arr, thisClass);\n";
if (!empty($upholstery_names)) echo("let arr = ".json_encode($upholstery_names).", thisClass = 'upholstery';\naddList(arr, thisClass);\n";
?>

Можно и функцию использовать, но при обращении к несуществующий (непроинициализированной) переменной нужно будет избавляться от ошибки.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@AleksRap
написать функцию с двумя аргуметами и вызывать ее
Ответ написан
Комментировать
просто вынеси это в функцию и вызывай ее где надо
что то типа того
function functionName($upholstery_names, $name) {
<?php if (!empty($upholstery_names)) { ?>
let arr = <?= json_encode($upholstery_names); ?>,
return addList(arr, $name);
<?php } ?>
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽