Подробная инструкция по использованию условных операторов «if», «else» и «elseif» в php/javascript
Содержание:
- Количество операндов
- Тернарный оператор (?:)
- Логические операции
- Вложенные конструкции if-else.
- Популярные статьи:
- Цикл While php
- Условный оператор „?“
- Несколько операторов „?“
- Deezer
- Что такое структура управления?
- Типы операндов
- Операторы «кораблей»
- Оператор присваивания и слияние переменных
- Конструкции выбора
- Проходим через различные управляющие структуры
- Логическое И (AND и &&)
- Выражения
- Инструкция else if
Количество операндов
Разные операторы принимают разное количество операндов. Операторы, которые работают с двумя операндами называются бинарными, к таким операторам относятся сложение, вычитание умножение и т.д.
Другие операторы могут принимать всего один операнд, они называются унарными. Примерами унарного оператора могут служить унарный минус (-), инкремент, декремент и т.д.
Существует также один оператор, который может работать с тремя операндами, такой оператор называется тернарный. Этим оператором является оператор, представляющий собой сокращенную форму записи условного оператора if, о котором мы поговорим позже, когда будем рассматривать условные операторы.
Тернарный оператор (?:)
Условный оператор (?:) – это единственный тернарный (от лат. ternarius — «тройной») оператор с тремя операндами в JavaScript. Тернарный оператор возвращает свой второй или третий операнд в зависимости от значения логического выражения, заданного первым операндом.
Первый операнд используется в качестве условия, он вычисляется и преобразуется, при необходимо, в булево значение. Если условие верно , то вычисляется и возвращается значение1. Если условие неверно , то вычисляется и возвращается значение2:
Например:
Выполнить код »
Скрыть результаты
Читается этот код так: если а больше b, то c = a, иначе c = b.
Можно записать тоже самое через if/else:
Выполнить код »
Скрыть результаты
Вложенные инструкции if/else, так же можно заменить последовательностью из тернарных операторов:
Выполнить код »
Скрыть результаты
Условный оператор имеет ассоциативность справа налево, поэтому следующие две инструкции эквивалентны:
if/elseнеполным вычислением
Выполнить код »
Скрыть результаты
В предыдущем примере оператор сначала проверяет выполняется ли временное условие (чему равна переменная time). Если условие выполняется, то в переменную message будет записана соответствующая строка приветствия. В противном случае, в силу побочного эффекта, связанного с неполным вычислением, оператор выведет и т.д. Этот метод используется не очень часто, но если вам встретится нечто подобное, то вы теперь знаете, как работают подобные инструкции.
Логические операции
Логические операции позволяют комбинировать логические значения (называемые также истинностными) для получения новых логических значений. Как показано в таблице ниже, в языке PHP поддерживаются стандартные логические операции (and, or, not и xor), причем первые две имеют альтернативные версии.
Операция | Описание |
---|---|
and | Операция, результат которой принимает истинное значение тогда и только тогда, когда оба ее операнда имеют истинное значение |
or | Операция, результат которой принимает истинное значение, если один из ее операндов (или оба операнда) имеет истинное значение |
! | Операция, результат которой принимает истинное значение, если ее единственный операнд (задаваемый справа от знака операции) имеет ложное значение, и ложное значение, если операнд имеет истинное значение |
xor | Операция, результат которой принимает истинное значение, если любой из ее операндов (но не оба одновременно) имеет истинное значение |
&& | То же, что и операция and, но связывает свои операнды сильнее по сравнению с этой операцией |
|| | То же, что и операция or, но связывает свои операнды сильнее по сравнению с этой операцией |
Операции && и || должны быть знакомы программистам, работающим с языком C. Операцию ! обычно называют not, поскольку она становится отрицанием для того операнда, к которому применяется.
Чтобы проверить, имеют ли оба операнда значение TRUE, следует использовать оператор AND, который можно записать и как двойной амперсанд (&&). Оба оператора, AND и &&, являются логическими, их единственное отличие в том, что оператор && имеет более высокий приоритет, чем оператор AND. То же самое относится к операторам OR и ||. Оператор AND возвращает TRUE, только если оба операнда имеют значение TRUE; в противном случае возвращается значение FALSE.
Чтобы проверить, имеет ли хотя бы один операнд значение TRUE, следует использовать оператор OR, который можно записать и как двойную вертикальную линию (||). Этот оператор возвращает TRUE, если хотя бы один из операндов имеет значение TRUE.
При использовании оператора OR в программе могут появиться трудноуловимые логические ошибки. Если PHP обнаружит, что первый операнд имеет значение TRUE, он не станет вычислять значение второго операнда. Это позволяет экономить время исполнения, но вы должны внимательно следить за тем, чтобы код, от которого зависит корректная работа программы, не был помещен во второй операнд.
Проверить, имеет ли значение TRUE только один из операндов (но не оба сразу), позволяет оператор XOR. Этот оператор возвращает значение TRUE, если один и только один из операндов имеет значение TRUE. Если оба операнда имеют значение TRUE, оператор вернет значение FALSE.
Инвертировать логическое значение можно с помощью оператора NOT, который часто записывается и в виде восклицательного знака (!). Он возвращает значение TRUE, если операнд имеет значение FALSE, и значение FALSE, если операнд имеет значение TRUE.
В таблице ниже приведены некоторые логические выражения и их результаты:
Пример логического выражения | Результат |
---|---|
TRUE AND TRUE | TRUE |
FALSE AND TRUE | FALSE |
TRUE OR FALSE | TRUE |
FALSE OR FALSE | FALSE |
TRUE XOR TRUE | FALSE |
TRUE XOR FALSE | TRUE |
!TRUE | FALSE |
!FALSE | TRUE |
Вложенные конструкции if-else.
Что называют вложенными конструкциями if-else? Это такие конструкции, которые состоят из нескольких условий.
Теперь рассмотрим вложенные конструкции if-else. Такие конструкции могут состоять из нескольких условий в выполняемых правилах. Для примера добавим еще две переменные $familiya1 и $familiya2:
$familiya1=»ivanov»;$familiya2=»sidarov»;
Как это выглядит в PHP-коде:
<html> <head> <title>основы php на BlogGood.ru</title> </head> <body> <?php $a=5; $b=5; $k=55; $n=88; $familiya1="ivanov"; $familiya2="sidarov"; if ($a == $b and $k != $n) { if ($familiya1 != $familiya2) { echo "Все ОK :)<br> В переменных familiya1 и familiya2 содержатся разные фамилии."; } else { echo "Не так все плохо, как вам кажется :(<br> В переменных familiya1 и familiya2 содержатся одинаковые фамилии."; } } else { echo "Не все ОК :("; } ?> </body> </html>
Разъяснение:
Смотрите, здесь были выполнены все условия
if ($a == $b and $k != $n)
Переменная $a равная с переменной $b и переменная $k не равная с $n. Здесь условия были выполнены, а это значит, что будет работать эта часть кода:
if ($familiya1 != $familiya2){echo «Все ОK : )<br>В переменных familiya1 и familiya2 содержатся разные фамилии.»;}
Так как переменные $familiya1 и $familiya2 между собой не равны и это правда,
$familiya1=»ivanov»;$familiya2=»sidarov»;
то будет работать вот эта часть кода:
{echo «Все ОK : )<br>В переменных familiya1 и familiya2 содержатся разные фамилии.»;}
Смотрим результат! Сохраните код PHP как «if-else.php» в папку «test-1» локального сервера (см. урок 1).
Введите в браузере адрес:
Результат:
Если в переменных $familiya1 и $familiya2 сделать значение одинаковыми:
$familiya1=»sidarov»;$familiya2=»sidarov»;
тогда, увы, здесь условия выполненными не будут, так как в условии стоит, что переменные должны быть не равными:
if ($familiya1 != $familiya2)
Вот по этой причине будет работать вот эта часть кода:
else{echo «Не так все плохо, как вам кажется : (<br>В переменных familiya1 и familiya2 содержатся одинаковые фамилии.»;}
В результате на мониторе вы увидите картинку:
Вот мы и закончили полностью тему «Оператор условия if-else для PHP». Чтобы закрепить «Урок 5» и «Урок 6», рекомендую самостоятельно поработать над созданием собственных условий.
А я пойду готовить для вас новые уроки по основам PHP. Подписывайтесь на обновления блога, если не хотите пропустить уроки по PHP.
Всего хорошего!
Понравился пост? Помоги другим узнать об этой статье, кликни на кнопку социальных сетей ↓↓↓
Популярные статьи:
-
Как узнать id компьютера
Дата: 29 Март 2013
Прокомментировано:90
просмотров: 312382 -
Размеры форматов листов А0 – А7
Дата: 23 Январь 2013
Прокомментировано:3
просмотров: 260733 -
Смешные логические загадки с подвохом, отгадки прилагаются
Дата: 12 Ноябрь 2014
Прокомментировано:5
просмотров: 186181 -
Установка windows 7 на ноутбук
Дата: 18 Декабрь 2012
Прокомментировано:169
просмотров: 181098 -
Как включить или отключить Aero в Windows 7
Дата: 1 Июнь 2013
Прокомментировано:6
просмотров: 152594
Цикл While php
Рис. 4.1. Пример использования цикла While
Результат:
1 2 3 4 5 6 7 8 9 10
Кроме того, можно использовать альтернативный синтаксис:
1 2 3 4 5 |
while (условие) оператор 1; оператор 2; ... endwhile; |
Рис. 4.2. Пример альтернативного использования цикла While
Пример: Выводить на экран ряд чисел 4 7 10 13 16 19 22… Всего вывести 30 цифр. Использовать цикл While php
Решение:
1 2 3 4 5 6 |
$sum=1; while ($i<=30){ $sum+=3; $i++; echo ($sum." "); } |
Результат:
4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94
Пример: Выводить степени двойки до значения 1024
Решение:
1 2 3 4 5 |
$a=1; while ($a<1000){ $a=$a*2; echo ($a." "); } |
Задание php 4_1: написать скрипт, вычисляющий квадраты целых чисел от 1 до 9
Условный оператор „?“
Иногда нам нужно определить переменную в зависимости от условия.
Например:
Так называемый «условный» оператор «вопросительный знак» позволяет нам сделать это более коротким и простым способом.
Оператор представлен знаком вопроса . Его также называют «тернарный», так как этот оператор, единственный в своём роде, имеет три аргумента.
Синтаксис:
Сначала вычисляется : если оно истинно, тогда возвращается , в противном случае – .
Например:
Технически, мы можем опустить круглые скобки вокруг . Оператор вопросительного знака имеет низкий приоритет, поэтому он выполняется после сравнения .
Этот пример будет делать то же самое, что и предыдущий:
Но скобки делают код более читабельным, поэтому мы рекомендуем их использовать.
В примере выше вы можете избежать использования оператора вопросительного знака , т.к. сравнение само по себе уже возвращает :
Несколько операторов „?“
Последовательность операторов вопросительного знака позволяет вернуть значение, которое зависит от более чем одного условия.
Например:
Поначалу может быть сложно понять, что происходит. Но при ближайшем рассмотрении мы видим, что это обычная последовательная проверка:
- Первый знак вопроса проверяет .
- Если верно – возвращает . В противном случае, проверяет выражение после двоеточия „»:»“, вычисляет .
- Если это верно – возвращает . В противном случае, проверяет выражение после следующего двоеточия „»:»“, вычисляет .
- Если это верно – возвращает . В противном случае, возвращает выражение после последнего двоеточия – .
Вот как это выглядит при использовании :
Deezer
Приложение пользуется популярностью на площадке AppStore. Приложение Deezer имеет одну особенность. После скачивания и регистрации вы выбираете любимые музыкальные направления. И за счет этого, приложение само будет предлагать вам самые популярные группы и треки тех музыкальных направлений, которые вы выбрали.
Данная функция во много раз сократит вам время скачивания и поиска, новых и интересных для вас музыкальных композиций. Также существует функция загрузки понравившейся песни в кэш, что позволит владельцу приложения слушать любимую музыку без интернета.
Что такое структура управления?
Проще говоря, структура управления позволяет вам контролировать поток выполнения кода в вашем приложении. Как правило, программа выполняется последовательно, по очереди, а структура управления позволяет вам изменять этот поток, обычно в зависимости от определенных условий.
Структуры управления — это основные функции языка PHP, которые позволяют вашему сценарию реагировать по-разному на разные входные данные или ситуации. Это может позволить вашему сценарию давать разные ответы на основе пользовательского ввода, содержимого файла или некоторых других данных.
Следующая блок-схема объясняет, как структура управления работает в PHP.
Как видно на приведенной выше диаграмме, сначала проверяется условие. Если условие истинно, будет выполнен условный код
Важно отметить, что выполнение кода продолжается нормально после выполнения условного кода
Рассмотрим следующий пример.
В приведенном выше примере программа проверяет, вошел ли пользователь в систему. На основе состояния входа пользователя они будут перенаправлены на страницу входа Login или на страницу учетной записи My Account. В этом случае структура управления завершает выполнение кода, перенаправляя пользователей на другую страницу. Это ключевая способность языка PHP.
PHP поддерживает несколько различных структур управления:
- do-while
- и другие
Давайте рассмотрим некоторые из этих структур управления на примерах.
Типы операндов
Создавая выражения, необходимо обращать внимание на типы операндов, с которыми работает каждый из операторов, потому что каждый оператор ожидает получить операнды конкретного типа данных. Например, нельзя выполнить умножение двух строк
'a' * 'b'
Однако PHP старается максимально облегчить вам жизнь, автоматически выполняя необходимые преобразования типов операндов для конкретных операторов. Следующее выражение вполне допустимо:
'10' * '10'
В этом выражении интерпретатор PHP автоматически преобразует строки в числа и перемножает их. Но иногда такое автоматическое преобразование невозможно, поэтому будьте внимательны и следите за используемыми типами операндов.
Примечание: Когда PHP выполняет автоматическое преобразование типа, это называется неявным приведением типа, если преобразование типа выполняется вручную — это называется явным приведением типа.
Операторы «кораблей»
Итак, все знают об операторе «космический корабль» с момента выхода PHP 7. Но менее известно, что одновременно с этим релизом был введён целый флот космических кораблей для проведения крупномасштабных операций.
Крошечный космический корабль
Вы можете предоставить эскорт оператору космического корабля, используя крошечный оператор космического корабля. Этот оператор не делает сравнение: он просто добавляет к в таком изысканном стиле.
X-истребители
Если вы хотите добавить огневую мощь к предыдущему флоту, вы можете вызвать истребителей типа X к источнику PHP: . Следующий код вычитает 3 у (в оригинальной статье написано, что оператор прибавит 3 (), но это не так, см. вывод примера ниже — прим. пер.)
Линейный корабль
Оператор линейного корабля обеспечивает поддержку предыдущих операторов. Это один из операторов, работающий только с массивами, точно так же, как . Его следует использовать только самым продвинутым гуру PHP на этой стороне галактики. Не стоит недооценивать его силу.
Разве не лучший способ написать так?
Звезда Смерти
Многие из вас бы спросили, а был ли встроен в PHP оператор «звезда смерти», и ответ таков: в данный момент неизвестно. Есть планы на это, но никто никогда не видел реального экземпляра. Мне бы очень хотелось видеть оператор в три строки, так как PHP будет первым, кто будем иметь подобное (и, когда это произойдёт, надеюсь, не с моего счёта спишут стоимость этого оператора).
Оператор присваивания и слияние переменных
Переменные в php используются со знаком непосредственно перед идентификатором:
$mymane = "Иван"; |
Вывод значений переменных:
echo "Я изучаю РНР"; // или print "Я изучаю РНР"; |
Присваивание значений других переменных:
$test1 = $test2; echo $a, " ", $b; // или echo $a; echo " "; echo $b; |
Примеры:
1 2 3 4 5 6 7 8 |
<?php $first = 'text1'; $second = $first; $first = 'new text'; echo "Переменная first равна $first <br>"; echo "Переменная second равна". $second; ?> |
Как видно из примера, оператор присваивания в php — это знак равенства.
Результатом выполнения программы будет:
Переменная first равна new text
Переменная second равна text1
Конструкции выбора
Часто вместо нескольких расположенных подряд инструкций целесообразно воспользоваться специальной конструкцией выбора switch-case. Данная конструкция предназначена для выбора действий, в зависимости от значения указанного выражения. Конструкция switch-case чем-то напоминает конструкцию if-else, который, по сути, является ее аналогом. Конструкцию выбора можно использовать, если предполагаемых вариантов много, например, более 5, и для каждого варианта нужно выполнить специфические действия. В таком случае, использование конструкции if-else становится действительно неудобным.
Синтаксис конструкции switch-case такой:
Принцип работы конструкции switch-case такой:
- Вычисляется значение выражения;
- Просматривается набор значений. Пусть значение1 равно значению выражения, вычисленного на первом шаге. Если не указана конструкция (оператор) break, то будут выполнены команды i, i+1, i+2, … , N. В противном случае (есть break) будет выполнена только команда с номером i.
- Если ни одно значение из набора не совпало со значением выражения, тогда выполняется блок default, если он указан.
Приведем примеры использования конструкции switch-case:
Рассмотренный сценарий выводит x=1 дважды. Еще пример использования конструкции switch-case:
Данный скрипт выводит «Это Яблоко».
Конструкция switch выполняется поэтапно. Сперва никакой код не исполнен. Только, когда конструкция case найдена со значением, которое соответствует значению выражения switch, PHP начинает исполнять конструкции. PHP продолжает исполнять конструкции до конца блока switch, пока не встречается оператор break. Если не использовать конструкции (операторы) break, скрипт будет выглядеть так:
Операторный список для case может быть также пуст, он просто передает управление в операторный список до следующей конструкции case:
Когда ни одно значение из набора не совпало со значением выражения, тогда выполняется блок default, если он указан, например:
Данный скрипт выводит «x не равен 0, 1 или 2», поскольку переменная $x=3.
Конструкция switch-case также имеет альтернативный синтаксис:
Практический пример использования альтернативного синтаксиса для конструкции switch-case:
Как вы уже поняли, данный скрипт выводит «x не равен 0, 1 или 2», так как $x=3.
<<< Назад (Циклы в PHP) |
Вперед >>> (Конструкции объявления) |
Есть еще вопросы или что-то непонятно — добро пожаловать на наш форум портала PHP.SU |
||
|
Проходим через различные управляющие структуры
В предыдущем разделе мы изучили основы структур управления в PHP и их полезность при разработке приложений. В этом разделе мы рассмотрим пару важных структур управления, которые вы часто используете в повседневной разработке приложений.
If
Конструкция позволяет вам выполнить часть кода, если прилагаемое выражение вместе с ней оценивается как true.
Давайте посмотрим на следующий пример, чтобы понять, как это работает.
Вышеприведенный пример должен выводить потому что выражение принимает значение true. Фактически, если вы хотите выполнить только один оператор, приведенный выше пример можно переписать, как показано в следующем фрагменте без скобок.
С другой стороны, если у вас есть несколько операторов для выполнения, вы должны использовать скобки, как показано в следующем фрагменте.
Else
В предыдущем разделе мы обсудили конструкцию , которая позволяет вам выполнить кусок кода, если выражение оценивается как true. С другой стороны, если выражение оценивается как false, оно ничего не сделает. Чаще всего вы также хотите выполнить другой фрагмент кода, если выражение принимает значение false. Вот где выражение появляется на картинке.
Вы всегда используете оператор в сочетании с оператором . В принципе, вы можете определить его, как показано в следующем псевдокоде.
Давайте рассмотрим предыдущий пример, чтобы понять, как он работает.
Поэтому, когда у вас есть два варианта, и один из них должен быть выполнен, вы можете использовать конструкцию .
Else If
Мы можем рассматривать оператор как расширение конструкции . Если у вас есть более двух вариантов на выбор, вы можете использовать инструкцию .
Давайте рассмотрим базовую структуру инструкции , как показано в следующем псевдокоде.
Опять же, давайте попробуем понять это, используя реальный пример из жизни.
Как вы можете видеть в приведенном выше примере, у нас есть несколько условий, поэтому мы использовали ряд инструкций . В случае, если все условия равны false, он выполняет код, указанный в последнем объявлении .
Switch
Оператор switch несколько похож на оператор , который мы только что обсуждали в предыдущем разделе. Единственное отличие — это проверенное выражение.
В случае конструкции у вас есть набор различных условий, и соответствующее действие будет выполнено на основе условия. С другой стороны, если вы хотите сравнить переменную с разными значениями, вы можете использовать оператор .
Как обычно, пример это лучший способ понять оператор .
Как вы можете видеть в приведенном выше примере, мы хотим проверить значение переменной и на основе значения переменной мы хотим вывести сообщение.
Для каждого значения, которое вы хотите проверить с помощью переменной , вы должны определить блок . Если значение сопоставляется с case, будет выполняться код, связанный с этим блоком. После этого вам нужно использовать оператор для завершения выполнения кода. Если вы не используете оператор , выполнение скрипта будет продолжено до последнего блока в инструкции switch.
Наконец, если вы хотите выполнить кусок кода, если значение переменной не соответствует ни одному случаю, вы можете определить его в блоке . Конечно, это не обязательно — это всего лишь способ предоставить случай по умолчанию.
Это был обзор структур условного контроля. Мы обсудим циклы в PHP в следующем разделе.
Логическое И (AND и &&)
Оператор логическое И обозначается как или . Он выполняет операцию «логическое И» над двумя операндами. Он возвращает тогда и только тогда, когда оба операнда имеют значение . Если один или оба операнда возвращают значение , оператор возвращает . Смысл двух разных вариантов записи оператора «логическое И» такой же как и у двух предыдущих операторов, а именно в том, что они работают с различными приоритетами.
Сначала разберем как работает оператор . И так, если оба его операнда имеют истинное значение, он возвращает . Если хотя бы один или оба его операнда возвращают значение , он тоже вернет .
Оператор работает также как и оператор за одним исключением, если оператор используется с присваиванием, то сначала он вычислит и вернёт значение левого операнда, в остальном он работает точно также как и оператор . Если хотя бы один из его операндов возвращает значение , он тоже вернет , также если оба операнда возвращают ложные значения, он возвращает .
Для понимания рассмотрим теперь, как это работает на практике:
<?php // Оператор "&&" имеет больший приоритет, чем "and" // Результат выражения (true && false) будет присвоен переменной $bar1 // Действие приоритета: $bar1 = (true && false) $bar1 = true && false; // Сначала переменной присваивается значение true, а затем вычисляется второй операнд // Действие приоритета: ($bar2 = true) and false $bar2 = true and false; var_dump($bar1, $bar2); // ($bar3 = 9) and 3 $bar3 = 9 and 3; echo "<br>$bar3"; // => 9 ?>
Выражения
Выражение — это любая единица исходного кода программы, которая может быть вычислена для получения значения, например, вызов функции, использование операторов, или просто обращение к переменной по имени. В PHP почти всё является выражением.
Выражения делятся на простые (их также называют первичными) и сложные. Первичные выражения являются самостоятельными выражениями — они не включают в себя ещё более простых выражений. Например, к первичным выражениям относятся: идентификаторы, литералы и оператор группировки. Сложные выражения состоят из простых выражений. Типичный способ конструирования сложных выражений из простых выражений заключается в использовании операторов:
// Примеры первичных выражений 11 // Числовой литерал $str // Возвращает значение переменной [] // Литерал массива () // Оператора группировки // Примеры сложных выражений $alpha + 19 // Возвращает результат арифметической операции ($alpha - 37) * $beta / 2 // Возвращает результат арифметических операций foo() // Возвращает результат вызова функции $mass // Возвращает значение элемента массива
Некоторые выражения, так же как и инструкции, оканчиваются точкой с запятой, например:
$a = 5;
Таким образом, разница между выражением и инструкцией заключается в том, что любое выражение — это то, что вычисляется для получения значения, а инструкция — это просто указание на совершение какого-либо действия.
Инструкция else if
Инструкция используется в случае, если требуется выполнить один из многих фрагментов кода. Формально это не JavaScript-инструкция, а лишь распространенный стиль программирования, который заключается в применении повторяющихся инструкций :
Приведенный выше код – это всего лишь последовательность инструкций . Каждая следующая является частью предыдущей инструкции . Запись более удобная, чем ее синтаксически эквивалентная форма, показывающая вложенность инструкций :
В следующем примере, благодаря применению конструкции , будет выведено одно из четырех окон приветствия в зависимости от времени суток:
Выполнить код »
Скрыть результаты