4 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Просто о сложном или изучаем PHP7! Часть 8. Условный оператор switch

PHP :: Условный оператор switch

Оператор switch по своему действию похож на серию последовательных операторов if с одинаковым условием. Он применяется в тех случаях, когда требуется сравнить одну и ту же переменную или выражение с множеством различных значений и в зависимости от результата сравнения выполнить различные участки кода. Использование оператора switch показано в примере №1.

Пример №1. Условный оператор switch

Также, как и в случае с оператором if , в круглых скобках после ключевого слова switch записывается условие оператора, после чего в фигурных скобках располагается и само тело оператора. В теле оператора записывают необходимое количество специальных меток, сформированных из case , соответствующих им выражений, которые могут быть приведены к простому типу, например, integer , float , bool , string , и двоеточий, завершающих конструкции меток. После меток записываются соответствующие данным меткам фрагменты кода, которые будут выполнены в случае равенства значения условия оператора switch значению выражения данной метки.

Поскольку в операторе switch выражение вычисляется всего один раз и этот результат сравнивается со значением каждого оператора case , а условие оператора elseif вычисляется снова в каждом из них, то в случае сложных сравнений или нахождения внутри цикла конструкция switch может работать быстрее, чем соответствующая конструкция if с дополнительными операторами elseif .

Отметим, что после вычисления значения условия оператора switch интерпретатор начинает сравнивать это значение со значениями операторов case . При этом используется нестрогое сравнение при помощи оператора ‘==’ . Когда совпадение будет найдено, интерпретатор начинает выполнять весь последующий код вплоть до конца блока switch , т.е. включая код всех последующих операторов case и необязательного оператора default (см. пример №2). Поэтому, во избежание такого поведения интерпретатора, следует в конце соответствующих кусков кода применять оператор break , который служит для прерывания текущего оператора switch и передачи управления оператору, следующему за ним.

Пример №2. Выполнение оператора switch в случае отсутствия операторов break

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

Если один и тот же код должен быть исполнен для различных значений условия оператора switch , то соответствующие этим значениям операторы case можно оставить пустыми, за исключением последнего в списке, в котором и следует записать код для исполнения (см. пример №3).

Пример №3. Применение пустых операторов case

Примеры switch case в PHP

Конструкция switch-case очень похожа на условный оператор if-else, но имеет свои особенности. Целесообразнее использовать именно switch-case, когда выбор среди сравниваемых значений, предстоит сделать из большего количества вариантов.

Пример 1

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

Вопрос: Назовите страну из первой тройки с самой большой численностью населения?

Как работает оператор switch?

Когда участник введёт слово, например Китай, это слово запишется в переменную $pop, оператор switch пройдется по меткам (case) по порядку, пока значение переменной не совпадет с одним из значений кейса, тогда на экран выведется: Китай занимает первое место. Но если участник введет, например слово Россия, которого нет в коде программы, то switch, не обнаружив совпадений, наткнется на break и перейдет к выполнению дефолтным инструкций, выведет на экран: Вам надо подучить географию.

Break не обязателен

Если предусмотрено выполнение только одного кейса, то в конце case обязательно должно стоять ключевое слово break, которое прерывает работу оператора switch, как только значение будет найдено или не найдено (ничего не выведет на экран или дефолтное сообщение).

Давайте посмотрим на примере, что произойдет, если в скрипте после case не будет ключевого слова break.

Пример 2

Рассмотрим на примере сказки Репка, мы уже забыли в каком порядке персонажи сказки тянут друг за другом репку.

В переменной $repka оказалась мышка, оператор switch обнаружил мышку и ничто ему не мешает перебрать все кейсы и вывести их значения по порядку. Выполняются все кейсы, идущие следом за совпадающими значениями.

Мышка за кошку
Кошка за жучку
Жучка за внучку
Внучка за бабку
Бабка за дедку
Дедка за репку

Но когда в переменную попадает дедка, то на экран выведется только последний кейс.

Пример 3

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

Пример, классической манипуляции, пользователь вводит любой сорт сыра из кейсов, то ему на экране выводится приятное сообщение Вы настоящий гурман. Если пользователь введет название какого-нибудь дешевого сыра, то увидит обидное сообщение – У вас непритязательный вкус.

Выводы

Когда же лучше использовать конструкцию switch-case, если if-else, делает тоже самое. Используйте оператор switch, когда надо сравнивать больше, чем два значения или ваше условие сложнее, чем простое сравнение.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Читать еще:  Что делать перед переустановкой Windows

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

  • BB-код ссылки для форумов (например, можете поставить её в подписи):
  • Комментарии ( 0 ):

    Для добавления комментариев надо войти в систему.
    Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

    Copyright © 2010-2020 Русаков Михаил Юрьевич. Все права защищены.

    лабы по информатике, егэ

    лабораторные работы и задачи по программированию и информатике, егэ по информатике

    PHP занятие 3. Условные операторы

    Условные операторы php

    Условные операторы php представлены тремя основными конструкциями:

    • оператор условия if,
    • оператор переключения switch
    • и тернарный оператор.

    Рассмотрим подробнее каждый из них.

    PHP оператор if

    Рис 3.1. Условный оператор IF, укороченный вариант

    Рис. 3.2. Синтаксис условного оператора IF ELSE

    Рис. 3.3. Полный синтаксис условного оператора IF elseif

    Полный синтаксис:

    • Укороченный синтаксис может не содержать части конструкции с else и не содержать дополнительного условия elseif
    • Вместо служебного слова elseif можно писать else if (отдельно)
    • В одной конструкции if может быть несколько elseif . Будет выполнено первое встретившееся выражение elseif равное TRUE .
    • В случае наличия альтернативного условия elseif конструкция else должна идти последней в синтаксисе.

    В условном операторе может использоваться двоеточие : вместо фигурных скобок. В таком случае заканчивается оператор служебным словом endif

    Рис. 3.4. Условный оператор If и Endif в php

    Пример:

    if($x > $y): echo $x.» больше, чем «.$y; elseif($x == $y): // при использовании «:» нельзя писать раздельно else if echo $x.» равно «.$y; else: echo $x.» не > и не = «.$y; endif;

    Логические операции в условии

    В условии if в скобках могут присутствовать следующие операции:

    $number=15; if ($number $a действительно равна 4

    2 Решение:

    Операции сравнения и правило лжи

    В конструкции if в скобках должно находиться логическое выражение или переменная, которые рассматриваются с точки зрения алгебры логики, возвращающая значения либо true либо false

    Т.е. в качестве условия может выступать единственная переменная. Рассмотрим пример:

    В примере транслятор языка php будет рассматривать переменную в скобках на правило лжи:

    Правило ЛЖИ или что считается ложным:

    • логическое False
    • целый ноль ()
    • действительный ноль (0.0)
    • пустая строка и строка «0»
    • массив без элементов
    • объект без переменных
    • специальный тип NULL

    Таким образом, в рассмотренном примере переменная $a равна единице, соответственно условие будет истинным и оператор echo $a; выведет на экран значение переменной.

    PHP скрипты

    Apache

    PHP Скрипты

    Для Дизайна Сайта

    Навигация

    Партнеры

    • PHP для начинающих
    • Cимволы HTML
    • MySQL: Уроки, руководство
    • cPanel
    • Список кодировок

    К сожалению, управляющий оператор if даже в сочетании с ключевыми словами else и elseif иногда может оказаться неэффективным при решении определенного класса задач. Например, в книжный магазин завезли несколько новых книг. Нужно написать PHP-приложение, которое выводит фамилию автора книги, указанную пользователем. Прежде чем ваши руки устремятся к клавиатуре, давайте немного поразмышляем о способе решения.

    Итак, представим наше PHP-приложение в виде «черного ящика», то есть имеются входные и выходные данные, а что внутри пока неизвестно. На данный момент в нашем распоряжении есть оператор if, с помощью которого задача решается следующим образом. Так как от пользователя в программу поступает название книги, то можно последовательно сравнивать его со всеми имеющимися названиями и при совпадении выводить соответствующую фамилию (листинг 6.9).

    Листинг 6.9. Оператор Switch.

    ‹html›
    ‹head›
    ‹title› Оператор Switch ‹/title›
    ‹/head›
    ‹body›
    ‹?php
    $book_name = «Самоучитель по PHP»; // входные данные
    if ( $book_name == «Самоучитель no Perl» )
    <
    echo «Автор: Петров»; // выходные данные
    >
    elseif ( $book_name == «Самоучитель no ASP» )
    <
    echo «Автор: Иванов»; // выходные данные
    >
    elseif ( $book_name == «Самоучитель по РНР» )
    <
    echo «Автор: Сидоров»; // выходные данные
    >
    ?›
    ‹/body›
    ‹/html›

    Сейчас нас не интересует способ поступления названия книги, поэтому оно просто хранится в переменной $book_name. Чтобы избежать многократного выполнения оператора if, мы использовали его в сочетании с ключевым словом elseif. В результате программа выведет фамилию Сидоров, так как выражение $book_name == «Самоучитель по РНР» имеет значение TRUE, а все предыдущие — FALSE.

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

    Для более логичного и эффективного решения подобных задач применяется управляющий оператор выбора switch:

    switch (выражение)
    <
    case выражение : действие;
    break;
    .
    case выражение : действие;
    break;

    Вся конструкция начинается со слова switch. Далее в круглых скобках следует выражение, которое, в отличие от выражения оператора if, может быть не только типа Boolean, но и Integer, Double и String. От его значения зависит, какие действия выполнять. В нашем случае это может быть переменная $book_name, так как именно по ней определяется какую фамилию выводить.

    После закрывающей круглой скобки следует блок, в котором находятся выражения для сравнения и соответствующие им действия. Синтаксически это оформляется с помощью специального слова case и знака двоеточия (смотрите пример).

    Оператор break служит для того, чтобы выйти из конструкции switch в случае, когда значения выражений совпали. Подробно о нем читайте дальше в этой главе.

    После слова default следует действие, которое нужно выполнить, если совпадений не было. Например, вывести сообщение, что запрашиваемой книги нет в магазине.

    Решение задачи с использованием оператора switch будет выглядеть так, как показано на примере листинга 6.10.

    Листинг 6.10. Решение задачи с помощью оператора Switch.

    ‹html›
    ‹head›
    ‹title›Оператор Switch‹/title›
    ‹/head›
    ‹body›
    ‹?php
    $book_name = «Самоучитель no PHP»;
    switch ( $book_name )
    <
    // выводится, если $book_name имеет значение «Самоучитель по Perl»
    case «Самоучитель по Perl»: echo «Автор: Петров»;
    // выход из конструкции switch
    break;
    case «Самоучитель по ASP»: echo «Автор: Иванов»;
    break;
    case «Самоучитель по PHP»: echo «Автор: Сидоров»;
    break;
    // сообщение выведется, если не было совпадений
    default: echo «Такой книги в наличии нет»;
    >
    ?›
    ‹/body›
    ‹/html›

    Надо отметить, что присутствие в конструкции switch слов default и break не является обязательным. Если опустить слово default, то в случае, когда совпадений не было, никаких действий просто не выполняется. Интереснее дело обстоит с оператором break (листинг 6.11).

    Листинг6.11. Особенности оператора Break.

    ‹html›
    ‹head›
    ‹title›Особенности оператора Break‹/title›
    ‹/head›
    ‹body›
    ‹?php
    $book_name = «Самоучитель no Perl»;
    switch ( $book_name )
    <
    case «Самоучитель no Perl»: echo «Автор: Петров»;
    case «Самоучитель no ASP»: echo «Автор: Иванов»;
    break;
    case «Самоучитель no PHP»: echo «Автор: Сидоров»;
    break;
    default: echo «Такой книги в наличии нет»;
    >
    ?>
    ‹/body›
    ‹/html›

    Читать еще:  Как обрезать песню на компьютере

    В результате выведутся фамилии Петров и Иванов. Другими словами, если совпали выражения и опущен оператор break, то выполнятся все действия вплоть до следующего оператора break. В нашем случае это привело к неправильной работе программы. Но есть случаи, когда отсутствие break помогает избежать многократного повторения в конструкции switch. Например, Петров написал не только самоучитель по Perl, но и еще несколько книг, тогда задачу можно решить так, как показано на примере листинга 6.12.

    Листинг 6.12. Особенности оператора Break.

    ‹html›
    ‹head›
    ‹title›Особенности оператора Break‹/title›
    ‹/head›
    ‹body›
    ‹?php
    $book_name = «Информатика в школе»;
    switch ( $book_name )
    <
    case «Самоучитель no Perl»:
    case «Информатика в школе»:
    case «Программирование в Internet»: echo «Автор: Петров»;
    break;
    case «Самоучитель no ASP»: echo «Автор: Иванов»;
    break;
    case «Самоучитель no PHP»: echo «Автор: Сидоров»;
    break;
    default: echo «Такой книги в наличии нет»;
    >
    ?›
    ‹/body›
    ‹/html›

    В этом случае если пользователь ввел название одной из трех книг Петрова, выведется его фамилия, так как отсутствует оператор break. Стоит отметить, что таким образом задача решается намного эффективнее, чем многократное повторение операторов break и вывода фамилии Петров.

    Нельзя не сказать еще несколько слов о выражении, следующим за case. В отличие от многих других языков программирования, оно может иметь любой скалярный тип данных. Например, в решениях наших задач мы использовали строковые выражения.

    Switch

    Многие языки, в дополнение к условной конструкции if, включают в себя switch. Эта специализированная версия if, созданная для некоторых особых ситуаций. Например ее имеет смысл использовать там, где есть цепочка if else с проверками на равенство. Например:

    Эта составная проверка обладает одной отличительной чертой, каждая ветка здесь, это проверка значения переменной status . Switch позволяет записать этот код короче и выразительнее:

    Свитч довольно сложная конструкция с точки зрения количества элементов из которых она состоит:

    • Внешнее описание в которое входят ключевое слово switch . Переменная, по значениям которой switch будет выбирать поведение. И фигурные скобки для вариантов выбора.
    • Конструкции case и default , внутри которых описывается поведение для разных значений рассматриваемой переменной. Каждый case соответствует if в примере выше. default это особая ситуация, соответствующая ветке else в условных конструкциях. Как else , указывать default не обязательно.
    • break нужен для предотвращения “проваливания”. Если его не указать, то после выполнения нужного case выполнение перейдет к следующему case и так либо до ближайшего break либо до конца switch.

    Фигурные скобки в switch не определяют блок кода как это было в других местах. Внутри допустим только тот синтаксис, который показан выше. То есть там можно использовать case или default . А вот внутри каждого case (и default ) ситуация другая. Здесь можно выполнять любой произвольный код.

    Иногда результат полученный внутри case это конец выполнения функции содержащей switch. В таком случае его нужно как-то вернуть наружу. Для решения этой задачи есть два способа.

    Первый. Создать переменную перед switch, заполнить ее в case и затем, в конце, вернуть значение этой переменной наружу.

    Второй способ проще и короче. Вместо создания переменной, case позволяет внутри себя делать обычный возврат из функции. А так как после return никакой код не выполняется, то мы можем избавиться от break :

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

    Задание

    Реализуйте функцию getNumberExplanation , которая принимает на вход число и возвращает объяснение этого числа. Если для числа нет объяснения, то возвращается null :

    Условные операторы

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

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

    Логические операции

    Логические операции позволяют комбинировать логические значения (называемые также истинностными) для получения новых логических значений. Как показано в таблице ниже, в языке PHP поддерживаются стандартные логические операции (and, or, not и xor), причем первые две имеют альтернативные версии.

    Операции && и || должны быть знакомы программистам, работающим с языком C. Операцию ! обычно называют not, поскольку она становится отрицанием для того операнда, к которому применяется.

    Чтобы проверить, имеет ли хотя бы один операнд значение TRUE, следует использовать оператор OR, который можно записать и как двойную вертикальную линию (||). Этот оператор возвращает TRUE, если хотя бы один из операндов имеет значение TRUE.

    При использовании оператора OR в программе могут появиться трудноуловимые логические ошибки. Если PHP обнаружит, что первый операнд имеет значение TRUE, он не станет вычислять значение второго операнда. Это позволяет экономить время исполнения, но вы должны внимательно следить за тем, чтобы код, от которого зависит корректная работа программы, не был помещен во второй операнд.

    Проверить, имеет ли значение TRUE только один из операндов (но не оба сразу), позволяет оператор XOR. Этот оператор возвращает значение TRUE, если один и только один из операндов имеет значение TRUE. Если оба операнда имеют значение TRUE, оператор вернет значение FALSE.

    Инвертировать логическое значение можно с помощью оператора NOT, который часто записывается и в виде восклицательного знака (!). Он возвращает значение TRUE, если операнд имеет значение FALSE, и значение FALSE, если операнд имеет значение TRUE.

    В таблице ниже приведены некоторые логические выражения и их результаты:

    Операции сравнения

    В таблице ниже показаны операции сравнения, которые могут применяться либо с числами, либо со строками:

    Необходимо следить за тем, чтобы не допустить одну весьма распространенную ошибку — не путать операцию присваивания (=) с операцией сравнения (==).

    Читать еще:  Настройка Wi-Fi и роутеров

    Приоритет операций

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

    можно переписать как

    Инструкция if — else

    Инструкция if позволяет исполнить блок кода, если условное выражение в этой инструкции имеет значение TRUE; в противном случае блок кода не исполняется. В качестве условия может применяться любое выражение, включающее проверки на ненулевое значение, равенство, NULL с участием переменных и значений, возвращаемых функциями.

    Не важно, какие отдельные условные выражения составляют условное предложение. Если условие истинно, исполняется программный код, заключенный в фигурные скобки (<>). В противном случае PHP игнорирует его и переходит к проверке второго условия, проверяя все условные предложения, которые вы записали, пока не наткнется на инструкцию else, после чего автоматически выполнит этот блок. Инструкция else не является обязательной.

    Синтаксис инструкции if:

    Если в результате вычисления условного выражения получается значение TRUE, то блок программного кода, расположенный после него, будет исполнен. В следующем примере если переменная $username имеет значение ‘Admin’, будет выведено приветственное сообщение. В противном случае ничего не произойдет:

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

    Необязательная инструкция else – это блок программного кода, исполняемый по умолчанию, когда условное выражение возвращает значение FALSE. Инструкцию else нельзя использовать отдельно от инструкции if, поскольку у else нет собственного условного выражения. То есть else и if в вашем коде всегда должны быть вместе:

    Инструкции if и else

    Не забывайте закрывать фигурной скобкой блок кода в инструкции if, если вы поставили фигурную скобку в начале блока. В блоке else тоже должны быть открывающая и закрывающая фигурные скобки, как в блоке if.

    Все это хорошо, кроме случаев, когда вам требуется проверить несколько условий подряд. Для этого подойдет инструкция elseif. Она позволяет проверять дополнительные условия, пока не будет найдено истинное или достигнут блок else. У каждой инструкции elseif есть собственный блок кода, размещаемый непосредственно после условного выражения инструкции elseif. Инструкция elseif идет после инструкции if и перед инструкцией else, если таковая имеется.

    Синтаксис инструкции elseif немного сложнее, но следующий пример поможет вам разобраться в нем:

    Проверка нескольких условий

    Здесь проверяется два условия, и, в зависимости от значения переменной $username, выполняются разные действия. И еще есть возможность что-то сделать, если значение переменной отличается от первых двух.

    Тернарный оператор ?:

    Оператор ?: – это тернарный (трехместный) оператор, который принимает три операнда. Он работает аналогично инструкции if, но возвращает значение одного из двух выражений. Выражение, которое будет вычисляться, определяется условным выражением. Двоеточие (:) служит разделителем выражений:

    В примере ниже проверяется значение, и в зависимости от его значения (TRUE или FALSE) возвращаются разные строки:

    Создание сообщения с помощью оператора ?:

    Вполне очевидно, что приведенный выше оператор эквивалентен следующему оператору:

    Инструкция switch

    Инструкция switch сравнивает выражение с несколькими значениями. Как правило, в качестве выражения используется переменная, в зависимости от значения которой должен быть исполнен тот или иной блок кода. Например, представим себе переменную $action, которая может иметь значения «ADD» (добавить), «MODIFY» (изменить) и «DELETE» (удалить). Инструкция switch позволяет легко определить блок кода, который должен исполняться для каждого из этих значений.

    Чтобы показать разницу между инструкциями if и switch, выполним проверку переменной на соответствие нескольким значениям. В примере ниже приведен программный код, реализующий такую проверку на базе инструкции if, а в последующем примере – на базе инструкции switch:

    Проверка на соответствие одному из нескольких значений (инструкция if) Проверка на соответствие одному из нескольких значений (инструкция switch)

    Инструкция switch берет значение, стоящее рядом с ключевым словом switch, и начинает сравнивать его со всеми значениями, стоящими рядом с ключевыми словами case, в порядке их расположения в программе. Если соответствие не найдено, не исполняется ни один из блоков. Как только совпадение обнаружено, выполняется соответствующий блок кода. Расположенные ниже блоки кода также исполняются – до конца инструкции switch или до ключевого слова break. Это удобно для организации процесса, состоящего из нескольких последовательных шагов. Если пользователь уже проделал некоторые шаги, он сможет продолжить процесс с того места, на котором прервался.

    Выражение рядом с инструкцией switch должно возвращать значение элементарного типа, например число или строку. Массив можно задействовать только в виде его отдельного элемента, имеющего значение элементарного типа.

    Выбор по умолчанию

    Если значение условного выражения не совпало ни с одним из предложенных в инструкциях case вариантов, инструкция switch и в этом случае позволяет что-то сделать, примерно как инструкция else конструкции if, elseif, else. Для этого нужно последним вариантом в списке выбора сделать инструкцию default:

    Создание сообщения об ошибке с помощью инструкции default

    Кроме обычного, инструкция switch поддерживает альтернативный синтаксис – конструкцию из ключевых слов switch/endswitch, определяющих начало и конец инструкции вместо фигурных скобок:

    Инструкция switch завершается ключевым словом endswitch

    Прерывание исполнения

    Если должен быть исполнен только блок кода, соответствующий определенному значению, то в конце этого блока следует вставить ключевое слово break. Интерпретатор PHP, встретив ключевое слово break, перейдет к исполнению строки, расположенной после закрывающей фигурной скобки инструкции switch (или ключевого слова endswitch). Но если не использовать инструкцию break то проверка продолжается в последующих ветвях case конструкции switch. Ниже показан пример:

    Что происходит при отсутствии операторов break

    Если переменная $action будет иметь значение «ASSEMBLE ORDER», результат работы этого фрагмента будет следующим:

    Если предположить, что стадия сборки уже была пройдена, и переменная $action имеет значение «PACKAGE», то будет получен следующий результат:

    Иногда, отсутствие операторов break бывает полезным, как в приведенном примере, где формируются стадии заказа, но в большинстве случаев следует использовать этот оператор.

    Ссылка на основную публикацию
    Статьи c упоминанием слов:
    Adblock
    detector
    ×
    ×