Как переписать повторяющиеся конструкции 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 } ?>

Заранее спасибо!
  • Вопрос задан
  • 271 просмотр
Решения вопроса 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 } ?>
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы