09-06-2018 12:09

Конструкция выбора switch case PHP

Условие и выбор - ключевые конструкции языка. Правильное принятие решений - основа качественного алгоритма и понятный, доступный для понимания код. Корректное оформление алгоритма и правильное использование комментариев относятся к факторам стабильности и надежности.

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

Синтаксис конструкции выбора

Объектно-ориентированное программирование на Python: классы, описание и особенностиВам будет интересно:Объектно-ориентированное программирование на Python: классы, описание и особенности

Конструкция выбора switch case PHP очень просто записывается, корректно исполняется и удобна на практике. В примере предложена функция, которая оформляет текст тегами HTML. Если первый параметр содержит 'bold' или 'italic', то результат функции оборачивает второй параметр тегами 'strong' или 'i'.

Результат в браузере отображает содержание второго параметра жирным или наклонным начертанием. Любое другое значение первого параметра интерпретируется как цвет и оборачивает второй параметр тегом 'font'.

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

В предложенном примере применение оператора 'break' избыточно, поскольку в результате исполнения любого условия произойдет выход из функции по оператору 'return'.

Описание конструкции PHP: switch case

Условие, которое проверяется, записывается в круглых скобках после ключевого слова 'switch'. Тело конструкции состоит из секций 'case' и одного блока операторов 'default', который исполняется только в том случае, если не сработал ни один из блоков 'case'.

Есть весьма существенный нюанс. Блок операторов 'case' начинается после символа ':' и заканчивается оператором 'break'. Наличие оператора 'break' - не обязательно. Если его нет, то будет проверено следующее условие 'case'. Проверка условий выполняется всегда до первого совпадения. Естественно, условия здесь только '=='.

Каждая секция 'case' исполняется только в том случае, если условие выполняется, но блок операторов 'default' будет исполнен всегда, если есть пропуск оператора 'break' в той секции 'case', которая сработала, или ни одно из условий не совпало.

Фактически на PHP: switch case на несколько значений имеет несколько блоков операторов. Для формального следования синтаксису каждый блок операторов должен быть завершен 'break'.

Как только произошло совпадение условия, исполняется соответствующая секция и, если в ней отсутствует 'break', все, что следует за ней. В примере значение переменной '$x' равно 1 и нет ни одного 'break', поэтому результат = '-one--two--default-'.

Вложенность условных конструкций

Язык не ограничивает разработчика в уровне вложенности. Допускается вкладывать switch case. PHP также не ограничивает программиста в выборе операторов, которые можно использовать внутри case.

Это позволяет делать красивые и легко читаемые алгоритмы. Например, необходимо распознать таблицу правил CSS. Можно сразу установить switch case PHP на распознавание классов и идентификаторов, затем распознавать сами правила. Это очевидное решение, но громоздкое. Как классы, так и идентификаторы используют сходные правила.

Удобнее выполнить распознавание правил посредством switch case. Можно в PHP включить функцию, которая будет обращаться к распознаванию правил. Можно пойти дальше. Многие правила допускают сходные значения. Рассуждая таким образом, попробуйте построить обратный процесс: switch case на PHP будет исполнена в виде функций, первая работает на уровне значений, вторая - на уровне правил, а третья вызывается с уровня конкретного класса или идентификатора.



Источник