Содержание:
Условные операторы php
Условные операторы php представлены тремя основными конструкциями:
- оператор условия if,
- оператор переключения switch
- и тернарный оператор.
Рассмотрим подробнее каждый из них.
PHP оператор if
Подытожим:
Полный синтаксис:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 if (условие) { // если условие истинно operator1; operator2; } elseif(условие) { operator1; ... } else { // если условие ложно operator1; operator2; }
- Укороченный синтаксис может не содержать части конструкции с
else
и не содержать дополнительного условияelseif
- Вместо служебного слова
elseif
можно писатьelse if
(отдельно) - В одной конструкции
if
может быть несколькоelseif
. Будет выполнено первое встретившееся выражениеelseif
равноеTRUE
. - В случае наличия альтернативного условия
elseif
конструкцияelse
должна идти последней в синтаксисе.
В условном операторе может использоваться двоеточие
:
вместо фигурных скобок. В таком случае заканчивается оператор служебным словомendif
Пример:
1 2 3 4 5 6 7 | if($x > $y): echo $x." больше, чем ".$y; elseif($x == $y): // при использовании ":" нельзя писать раздельно else if echo $x." равно ".$y; else: echo $x." не > и не = ".$y; endif; |
elseif
нельзя писать в два слова!Логические операции в условии
В условии if
в скобках могут присутствовать следующие операции:
== |
равенство |
!= |
неравенство |
> |
больше |
< |
меньше |
>= |
больше или равно |
<= |
меньше или равно |
Решение:
1 2 3 4 5 6 7 | $number=15; if ($number <=10) { echo "число меньше или равно 10"; } else { echo "число больше 10"; } |
Блоки php кода можно разрывать, рассмотрим пример:
$a
действительно равна 41 Решение:
1 2 3 4 | <?php if ($a == 4): echo "a равно 4"; ?> |
2 Решение:
1 2 3 | <?php if ($a == 4): ?> A равно 4 <?php endif; ?> |
$a='blue'
)Операции сравнения и правило лжи
В конструкции if
в скобках должно находиться логическое выражение или переменная, которые рассматриваются с точки зрения алгебры логики, возвращающая значения либо true
либо false
Т.е. в качестве условия может выступать единственная переменная. Рассмотрим пример:
1 2 3 4 | $a=1; if ($a) { echo $a; } |
В примере транслятор языка php будет рассматривать переменную в скобках на правило лжи:
Правило ЛЖИ или что считается ложным:
- логическое False
- целый ноль (0)
- действительный ноль (0.0)
- пустая строка и строка «0»
- массив без элементов
- объект без переменных
- специальный тип NULL
Таким образом, в рассмотренном примере переменная $a
равна единице, соответственно условие будет истинным и оператор echo $a;
выведет на экран значение переменной.
а
со строковым значением. Если а
равна имени, то выводить «Привет, имя!», если а
равна пустому значению, то выводить «Привет, незнакомец!»Логические конструкции И
ИЛИ
и НЕ
в условном операторе
- Иногда необходимо предусмотреть выполнение одновременно нескольких условий. Тогда условия соединяются логическим оператором И —
&&
: - При необходимости выполнения одного из нескольких условий применяется логический оператор ИЛИ —
||
: - Для указания ложности условия используется логический оператор НЕ —
!
:
1 2 3 4 | $a=1; if ($a>0 && $a<5) { echo "a > 0 и a < 5"; } |
1 2 3 4 | $a=1; if ($a>0 || $a>1) { echo "a > 0 или a > 1"; } |
1 2 3 4 | $a=1; if (!($a<0)) { echo "a не < 0"; } |
Оператор Switch PHP
Оператор switch
или «переключатель» заменяет несколько подряд идущих конструкций if
. При этом он сравнивает одну переменную с множеством значений. Таким образом, это наиболее удобное средство для организации мультиветвления.
Синтаксис:
1 2 3 4 5 6 7 8 9 10 switch($переменная){ case "значение1": оператор1; break; case "значение2": оператор2; break; case "значение3": оператор3; break; [default: оператор4; break;] }
- Оператор может проверять как строковые значения (тогда они указываются в кавычках), так и числовые (без кавычек).
-
Оператор
break
в конструкции обязателен. Он осуществляет выход из конструкции при истинном условии и выполнении соответствующего условию оператора. Безbreak
будут выполняться операторы всехcase
независимо от их истинности.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $names=array("Иван","Петр","Семен"); switch($names[0]){ case "Петр": echo "Привет, Петя!"; break; case "Иван": echo "Привет, Ваня!"; break; case "Семен": echo "Привет, Ваня!"; break; default: echo "Привет, $names[0]!"; break; } |
- Создайте переменную
$day
и присвойте ей произвольное числовое значение - С помощью конструкции
switch
выведите фразу «Это рабочий день», если значение переменной$day
попадает в диапазон чисел от 1 до 5 (включительно) - Выведите фразу «Это выходной день», если значение переменной
$day
равно числам 6 или 7 - Выведите фразу «Неизвестный день», если значение переменной
$day
не попадает в диапазон чисел от 1 до 7(включительно)
Дополните код:
1 2 3 4 5 6 7 8 9 10 11 12 | ... switch(...){ case 1: case 2: ... echo "Это рабочий день"; break; case 6: ... default: ... } |
Тернарный оператор PHP
Тернарный оператор, т.е. с тремя операндами, имеет достаточно простой синтаксис, в котором слева от знака ?
записывается условие, а справа — два оператора разделенные знаком :
, слева от знака выполняется оператор при истинности условия, а справа от знака :
выполняется оператор при ложном условии.
условие ? оператор1 : оператор2;
speed
меньше 60, то выводить сообщение «Показания скорости в норме», иначе выводить сообщение «Скорость превышена!»1 2 3 4 | <?php $speed = 45; echo ($speed < 60) ? "Показания скорости в норме" : "Скорость превышена!"; ?> |
сенкю
не за что