Автоматизировать PHP Оператор переключения - PullRequest
0 голосов
/ 26 мая 2020

Я создаю определенные предметы с помощью PHP. Короче говоря, у меня есть объекты с красивыми всплывающими подсказками, сохраненные в переменных. У меня создано более 100 элементов. Итак, у меня есть огромный выпадающий html выбор всех элементов. Когда пользователь выбирает желаемый элемент, он переходит к кнопке «Создать». В бэкэнде я получаю ответ и хочу вернуть товар, который выбрал клиент. Я думаю об операторе switch, который соответствует значению имени для html select, и я сопоставляю его с правильным элементом из моих переменных. Протестировал работает неплохо. Однако, если я захочу включить все свои предметы, это потребует сотни переключателей. Я в порядке, если Switch - мой единственный жизнеспособный вариант, но есть ли способ автоматизировать создание случаев переключения? В противном случае мне нужно будет go и вручную записать все случаи переключения

switch ($helm){
    case "harle":
        $helm = $random_harle;
        break;
    case "eth_harle":
        $helm = $random_harle_eth;
        break;
    case "perfect_harle":
        $helm = $perfect_harle;
        break;
    case "perfect_harle_eth":
        $helm = $perfect_harle_eth;
        break;
    // and a 100+ more of these
    default:
    $helm = "None";
}

1 Ответ

1 голос
/ 26 мая 2020

Вы можете сопоставить все свои элементы в массиве

$myitems = ["harle" => $random_harle, 
  .....
];

, а затем использовать

foreach ($myitems as $key => $value) 
{ 
    if ($key == $helm) 
       return $value;
}
return "None";

Это проверяет данный $helm с $key. Если есть совпадение, вы возвращаете $value.

После l oop (нет совпадения) вы можете вернуть значение по умолчанию.

Кроме того, как предлагает CBroe, более короткая версия будет

if (array_key_exists($helm, $myitems))
   return $myitems[$helm];
return "None";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...