Как работает оператор switch и когда нам удобнее его использовать. Заменяем конструкцию if-else в простых ситуациях оператором switch.
Рассмотрим сегодня оператор switch, предназначенный для присваивания различного кода каждому из набора различных возможных случаев, которые может принимать управляющая переменная. То есть, у нас имеется одна переменная, и в зависимости от того, какое значение она принимает - выполняется соответствующий код, исходя из этого значения. Можно сказать, что этот оператор switch - это упрощенный способ использования конструкции if-else. Далее вы поймете почему. Пока, наверное, сложно, поэтому попробую объяснить на примере:
<? $fut="chelsea"; switch ($fut) { case "arsenal": echo "Мы должны не проиграть"; break; case "chelsea": echo "Мы должны сыграть в ничью"; break; case "bate": echo "Мы должны выиграть"; break; default: echo "Нужной команды нету в списке, значит можно играть, как нам хочется"; break; } ?>Давайте разбираться: вернемся к фантазии на тему футбола (ну люблю я этот футбол! :) ). Итак представим, что мы - тренер. Нам предстоит сыграть матч с какой-то одной командой, но мы пока не знаем, с какой. Наша переменная $fut="chelsea" содержит название этой команды, но представим, что мы пока не знаем, что в ней находится и какое значение она имеет. Но мы имеем такую информацию: команда, с которой мы будем играть, это - либо Арсенал, либо Челси, либо БАТЭ (я сугубо для примера, не поймите меня поклонником кого-либо или осуждающего). И тогда мы, имея долговременный и жизненый опыт понимаем, что команде нужно дать напутствия о том, как нужно играть с определенной командой. Мы начинаем говорить своей команде, что нужно делать при соответствующей игре с определнной команде, т.е. задаем установки футболистам (попробуем обработать их):
- если мы играем с Арсеналом, то мы должны не проиграть;
- если мы играем с Челси, то мы должны сыграть в ничью;
- если мы играем с БАТЭ, то мы должны выиграть;
- если же информатор обманул нас, и на матч с нами выйдет какая-то другая команда, установок для которой мы не имеем, то мы играем так, как нам захочется;
case "bate": echo "Мы должны выиграть"; break;То есть, если в нашей переменной было бы значение "bate", то исполнился бы код, находящийся после двоеточия: echo "Мы должны выиграть"; И на экране мы бы увидел соответственно сообщение: Мы должны выиграть. Команда break; дает нам понять, что весь код, который мы хотели забить в случай с проверкой на равенство значений переменной $fut и значения "bate", закончился. То есть она определяет конец начинки для данного случая команды case. Можно для себя запомнить case как случай, тогда будет нагляднее представлять картину. Вернемся к нашему основному примеру - думаю вы уже догадались, что раз изначально переменная $fut содержит значение "chelsea", то соответственно на экране мы увидим следующее:
Мы должны сыграть в ничьюТо есть для нашего варианта определился второй случай, где определилось равенство нашей переменной и значения команды case. А что же такое в конце - спросите вы. "default:" - это прописывается по желанию разработчиком, данная команда содержит в себе такой же принцип обработки, как и другие "case". Но начинка данного блока default будет выполняться лишь тогда, когда ни один из случаев case не будет равен значению нашей управляющей переменной (в нашем случае она же $fut). Исходя из начального примера, давайте изменим начальное значение переменной $fut:
<?
$fut="mu";
switch ($fut) {
...
default:
echo "Нужной команды нету в списке, значит можно
играть, как нам хочется";
break;
}
?>
И посмотрим, что получится в итоге на экране:
Нужной команды нету в списке, значит можно играть, как нам хочетсяПару слов добавлю по поводу break - если не ставить данную команду после каждого случая, то для данного выбранного случая пойдет дальнейшая обработка кода и будет выполняться все, что стоит далее до тех пор, пока не встретится команда break.
Комментариев нет:
Отправить комментарий