Умова і вибір - ключові конструкції мови. Правильне прийняття рішень - основа якісного алгоритму і зрозумілий, доступний для розуміння код. Коректне оформлення алгоритму і правильне використання коментарів відносяться до факторів стабільності і надійності.
Сучасне програмування раніше не позбавлена жорсткості. Код, написаний одного разу, може адаптуватися до зміни умов завдання тільки за допомогою компетентного фахівця. Але все ж таки рівень мобільності коду визначається рівнем кваліфікації її автора.
Синтаксис конструкції вибору
Конструкція вибору 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 буде виконана у вигляді функцій, перша працює на рівні значень, друга - на рівні правил, а третя викликається з рівня конкретного класу або ідентифікатора.