English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этом руководстве вы узнаете, как использовать структуру switch-case для тестирования или оценки выражений с различными значениями в PHP.
Структура switch-case является альтернативой инструкциям if-elseif-else и выполняет几乎 такие же действия. Структура switch-case проверяет переменную по нескольким значениям до тех пор, пока не найдется совпадение, после чего выполняется блок кода, соответствующий этому значению.
switch(n){ case label1: // Код для выполнения, если n=label1 break; case label2: // Код для выполнения, если n=label2 break; ... default: // Код для выполнения, если n не соответствует всем этикеткам }
Смотрите следующий пример, который показывает различные сообщения каждый день.
<?php $today = date("D"); switch($today){ case "Mon": echo "Сегодня понедельник. Убедитесь, что ваш дом в порядке."; break; case "Tue": echo "Сегодня вторник. Купите еду."; break; case "Wed": echo "Сегодня среда. Посетите врача."; break; case "Thu": echo "Сегодня четверг. Почините свою машину."; break; case "Fri": echo "Сегодня пятница. Вечеринки tonight."; break; case "Sat": echo "Сегодня суббота. Время去看 фильм."; break; case "Sun": echo "Сегодня воскресенье. Отдохните."; break; default: echo "Сегодня нет доступной информации."; break; } ?>Проверьте, как это работает‹/›
Разница между структурой switch-case и if-elseif-else заключается в одном важном аспекте. Инструкция switch выполняет строки по порядку (или инструкции по порядку), и как только PHP находит выражение условия case, которое истинно, он не только выполняет код, связанный с этим выражением case, но и все последующие выражения case до его окончания. Блок switch автоматически переключается.
Чтобы предотвратить это, добавьте инструкцию break в конце каждого блока case. Инструкция break сообщает PHP, что после выполнения кода, связанного с первым истинным выражением case, следует выйти из блока switch-case.