Intereting Posts
как получить подробную информацию о заказе через продавца flipkart api в php Как предотвратить изменение размера таблицы в PDF с помощью mPDF и PHP? Композитный шаблон в PHP, как создавать классы для работы вокруг необходимости расширения двух классов как написать webservice, который нуждается в аутентификации – PHP Конкатенация столбцов возвращает «Null» Mysql – Php Отображение значения строки базы данных в функции javascript в PHP Получить статус выхода из скрипта php внутри сценария оболочки Уничтожить сеанс в php Удалить заголовок в PHP Не удалось получить доступ к моему файлу Google. Файлы с учетной записью службы. php с базой данных postgresql Как загрузить файл в базе данных с 1 или несколькими отношениями Regex / code для исправления поврежденных сериализованных данных PHP array_splice () – Числовые смещения ассоциативных массивов Декодирование массива JSON объектов в PHP, это обратные косые черты?

Случай переключения PHP более 1 значения в случае

У меня другая ситуация. У меня есть переменная, которая содержит значения («Weekly», «Monthly», «Quarterly», «Annual»), и у меня есть другая переменная, которая содержит значения от 1 до 10.

switch ($var2) { case 1: $var3 = 'Weekly'; break; case 2: $var3 = 'Weekly'; break; case 3: $var3 = 'Monthly'; break; case 4: $var3 = 'Quarterly'; break; case 5: $var3 = 'Quarterly'; break; // etc. } 

Это не красиво, потому что у моего кода много дубликатов. Что я хочу:

 switch ($var2) { case 1, 2: $var3 = 'Weekly'; break; case 3: $var3 = 'Monthly'; break; case 4, 5: $var3 = 'Quarterly'; break; } 

Как я могу это сделать в PHP? Заранее спасибо. Извините за мой английский.

самым простым и, вероятно, лучшим способом было бы:

 switch ($var2) { case 1: case 2: $var3 = 'Weekly'; break; case 3: $var3 = 'Monthly'; break; case 4: case 5: $var3 = 'Quarterly'; break; } 

также, возможно, для более сложных ситуаций:

 switch ($var2) { case ($var2 == 1 || $var2 == 2): $var3 = 'Weekly'; break; case 3: $var3 = 'Monthly'; break; case ($var2 == 4 || $var2 == 5): $var3 = 'Quarterly'; break; } 

в этом сценарии $ var2 должен быть установлен и не может быть нулевым или 0

 switch ($var2) { case 1 : case 2 : $var3 = 'Weekly'; break; case 3 : $var3 = 'Monthly'; break; case 4 : case 5 : $var3 = 'Quarterly'; break; } 

Все после первого совпадения будет выполняться до тех пор, пока не будет найден оператор break. Таким образом, он просто переходит к следующему случаю, что позволяет вам «группировать» дела.

Switch также очень удобен для тестирования AB. Здесь код для случайного тестирования 4 разных версий чего-то:

 $abctest = mt_rand(1, 1000); switch ($abctest) { case ($abctest < 250): echo "A code here"; break; case ($abctest < 500): echo "B code here"; break; case ($abctest < 750): echo "C code here"; break; default: echo "D code here"; break;