Конструкция SWITCH-CASE



Изучаем еще одну немаловажную конструкцию, которая очень часто используется и является во многих случаях удобной заменой конструкции IF-ELSE. Не во всех случаях, так что внедрять ее куда попало мы не будем.

Случаются такие моменты, когда нужно сравнить значения переменных и в зависимости от их знаечения вывести тот или иной результат. Представим, что у нас действия происходят все с тем же онлайн-магазином по продаже фототехники. Человек, выбрав на нашем сайте товар и оформив заказ теперь должен этот самый заказ оплатить. Вот он доходит до пункта "ОПЛАТА" и видит, что оплатить он может несколькими способами. Через WebMoney, Яндекс.Деньги, почтовым переводом, банковским переводом и еще целым списком платежных систем.

Вот он выбирал способ и теперь, кликнув по выбранному способу, он получет информацию о том, как совершить платеж. Как мы уже выяснили, на нашем сайте целый список этих способов, и, конечно же мы не станет прописывать все эти способы вручную в HTML-код, т.к. мы уже изучили конструкцию IF-ELSE. Мы можем уже для каждого способа вывести информацию из базы данных.

Вот тут и возникает вопрос: Неужели мы для каждого способа будем прописывать конструкцию IF-ELSE с разными условиями? Ответ: НЕТ!

Для этого и существует конструкция SWITCH-CASE, изучением которой мы сейчас и займемся. Возвращаясь к онлайн-магазину...

Человек выбрал способ, конструкция сравнила значение с оставшимися и вывела результат, т.е. в нашем случае информацию по выбранному человеком способу. Итак, чтобы не писать 150 раз IF-ELSE, можно один раз воспользоваться конструкцией SWITCH-CASE, синтаксис которой выглядит так:

Конструкция SWITCH-CASE

Как видите вводится слово SWITCH, за ним в круглых скобках стоит выражение, которое и будет сравниваться с другими, открываются фигурные скобки и в них указываются уже все возможные данные. Так в одном "кейсе" один способ оплаты, во втором "кейсе" второй и там до бесконечности.

Рассмотрим все это на примере кода все того же онлайн-магазина, где куча способов оплаты. Возьмем к примеру способ оплаты через WebMoney и будем сравнимать его еще с двумя способами: с почтовым переводом и с Яндекс.Деньги.

Прошу внимания! Код:

Конструкция SWITCH-CASE

1. Задается переменная, которая и будет сравниваться в нашей конструкции. У меня в коде значением переменной выбран способ WebMoney. Дальше, как показано на картинке синтаксиса после слова SWITCH в круглых скобках пишется выражение для сравнения - в нашем случае - это заданная нами переменная со значением способа оплаты.

Открываются фигурные скобки и в них уже прописываются все возможные способы оплаты и действия, которые нужно вывести, когда человек выбрал тот или иной способ. Каждый способ прописывается в CASE>, прописываются действия (в нашем коде это оператор выводы и фразы), и, после завершения действия прописывается BREAK;, обозначающий окончание "кейса" с данным способом.

У меня задана переменная со значением "WebMoney", далее я прописываю ее в круглые скобки и код начинает процесс, сравнивая значение этой переменной со всеми имеющимися значениями.

Как только он находит нужное значение - он вывод на экран фразу "Оплата через WebMoney..". Можете протестировать.

Если вы в поменяете значение переменной на какое-то другое и пропишете способ для этой переменной, то он выдаст вам именно то, что вы хотели.

Можете попробовать прописать вместо WebMoney в переменной - Яндекс.Деньги. На экран выведется фраза "Оплата через Яндекс.Деньги.." .

Кстати в самом конце конструкции вы видете слово DEFAULT. Нужно это для того, чтобы дать понять человеку то, что он не выбрал способ оплаты. Как видите там есть и соответствующая фраза).

Вот мы и разобрались с очередной конструкцией.

Домашнее задание

Попробовать придумать свои ситуации, в которых понадобилась бы эта конструкция. Обязательно запомнить как все пишется и из каких знаков и слов состоит)

(rockmania)


К списку всех уроков PHP