Php конструкция else if: PHP: elseif/else if — Manual
Содержание
PHP: elseif/else if — Manual
elseif/else if
(PHP 4, PHP 5, PHP 7, PHP 8)
Конструкция elseif
, как её имя и говорит есть сочетание
if
и else
. Аналогично
else
, она расширяет оператор if
для выполнения различных выражений в случае, когда условие начального оператора
if
эквивалентно
false
. Однако, в отличие от
else
, выполнение альтернативного
выражения произойдёт только тогда, когда условие оператора elseif
будет являться равным true
. К примеру,
следующий код может выводить a больше, чем
b, a равно b
или a меньше, чем b:
<?php
if ($a > $b) {
echo "a больше, чем b";
} elseif ($a == $b) {
echo "a равен b";
} else {
echo "a меньше, чем b";
}
?>
Может быть несколько elseif
в одном
выражении if
. Первое выражение
elseif
(если оно есть) равное
true
будет выполнено. В PHP вы также можете
написать ‘else if’ (в два слова), и тогда поведение будет идентичным
‘elseif’ (в одно слово). Синтаксически значение
немного отличается (если вы знакомы с языком С, это то же самое
поведение), но в конечном итоге оба выражения приведут к одному и
тому же результату.
Выражение elseif
выполнится, если
предшествующее выражение if
и предшествующие
выражения elseif
эквивалентны
false
, а текущий
elseif
равен
true
.
Замечание:
Заметьте, что
elseif
иelse if
будут равнозначны только при использовании фигурных скобок,
как в примерах выше. Если используются синтаксис с двоеточием для определения условий
if
/elseif
, вы не должны
разделятьelse if
на два слова, иначе это вызовет фатальную ошибку в PHP.
<?php/* Некорректный способ: */
if($a > $b):
echo $a." больше, чем ".$b;
else if($a == $b): // Не скомпилируется.
echo "Строка выше вызывает фатальную ошибку.";
endif;/* Корректный способ: */
if($a > $b):
echo $a." больше, чем ".$b;
elseif($a == $b): // Заметьте, тут одно слово.
echo $a." равно ".$b;
else:
echo $a." не больше и не равно ".$b;
endif;?>
PHP: Альтернативный синтаксис управляющих структур
Альтернативный синтаксис управляющих структур
(PHP 4, PHP 5, PHP 7, PHP 8)
PHP предлагает альтернативный синтаксис для некоторых его
управляющих структур, а именно: if
,
while
, for
,
foreach
и switch
.
В каждом случае основной формой альтернативного синтаксиса является изменение
открывающей фигурной скобки на двоеточие (:), а закрывающей скобки
на endif;
, endwhile;
,
endfor;
, endforeach;
или
endswitch;
соответственно.
<?php if ($a == 5): ?>
A равно 5
<?php endif; ?>
В приведённом выше примере, блок HTML «A равно 5» вложен внутрь
структуры if
, написанной с альтернативным синтаксисом.
Блок HTML будет показан только если переменная $a равна 5.
Альтернативный синтаксис также применяется и к else
и
elseif
. Ниже приведена структура
if
с elseif
и else
в альтернативном формате:
<?php
if ($a == 5):
echo "a равно 5";
echo "...";
elseif ($a == 6):
echo "a равно 6";
echo "!!!";
else:
echo "a не равно ни 5 ни 6";
endif;
?>
Замечание:
Смешивание синтаксиса в одном и том же блоке управления не поддерживается.
Внимание
Любой вывод (включая пробельные символы) между выражением switch
и первым case
приведут к синтаксической ошибке.
Например, данный код не будет работать:
<?php switch ($foo): ?>
<?php case 1: ?>
...
<?php endswitch ?>
В то же время следующий пример будет работать,
так как завершающий перевод строки после выражения
switch
считается частью закрывающего ?>
и следовательно ничего не выводится между
switch
и case
:
<?php switch ($foo): ?>
<?php case 1: ?>
...
<?php endswitch ?>
Смотрите также while,
for и if для дальнейших примеров.
Конструкция if..else и тернарная операция
Конструкция if..else и тернарная операция
Последнее обновление: 07.03.2021
Условные конструкции позволяют направлять работу программы в зависимости от условия по одному из возможных путей. И одной из таких конструкций
в языке PHP является конструкция if..else
Конструкция if..else
Конструкция if (условие)
проверяет истинность некоторого условия, и если оно окажется истинным, то выполняется блок выражений, стоящих после if. Если же
условие ложно, то есть равно false, тогда блок if не выполняется. Например:
<?php $a = 4; if($a>0){ echo "Переменная a больше нуля"; } echo "<br>конец выполнения программы"; ?>
Блок выражений ограничивается фигурными скобками. И так как в данном случае условие истинно (то есть равно true): значение переменной $a
больше 0, то блок инструкций в фигурных скобках также будет выполняться. Если бы значение $a было бы меньше 0, то блок if не выполнялся.
Если блок if содержит всего одну инструкцию, то можно опустить фигурные скобки:
<?php $a = 4; if($a>0) echo "Переменная a больше нуля"; echo "<br>конец выполнения программы"; ?>
Можно в одной строке поместить всю конструкцию:
if($a>0) echo "Переменная a больше нуля";
В данном случае к блоку if относится только инструкция echo "Переменная a больше нуля";
else
Блок else содержит инструкции, которые выполняются, если условие после if ложно, то есть равно false:
<?php $a = 4; if($a > 0){ echo "Переменная a больше нуля"; } else{ echo "Переменная a меньше нуля"; } echo "<br>конец выполнения программы"; ?>
Если $a больше 0, то выполняется блок if, если нет, то выполняется блок else.
Поскольку здесь в обоих блоках по одной инструкции, также можно было не использовать фигурные скобки для определения блоков:
if($a > 0) echo "Переменная a больше нуля"; else echo "Переменная a меньше нуля";
elseif
Конструкция elseif вводит дополнительные условия в программу:
$a = 5; if($a>0){ echo "Переменная a больше нуля"; } elseif($a < 0){ echo "Переменная a меньше нуля"; } else{ echo "Переменная a равна нулю"; }
Можно добавить множество блоков elseif
. И если ни одно из условий в if или elseif не выполняется, тогда срабатывает блок else.
Определение условия
Выше в качестве условия применялись операции сравнения. Однако в реальности в качестве условия может применяться любое выражение, а не только такое,
которое возвращает true
или false
. Если передаваемое выражение равно 0, то оно интерпретируется как значение false
.
Другие значения рассматриваются как true
:
if (0) {} // false if (-0.0) {} // false if (-1) {} // true if ("") {} // false (пустая строка) if ("a") {} // true (непустая строка) if (null) {} // false (значие отсутствует)
Альтенативный синтаксис if
PHP также поддерживает альтернативный синтаксис для конструкции if..else
,
при которой вместо открывающей фигурной скобки ставится двоеточие, а в конце всей конструкции ставится ключевое слово endif.
$a = 5; if($a > 0): echo "Переменная a больше нуля"; elseif($a < 0): echo "Переменная a меньше нуля"; else: echo "Переменная a равна нулю"; endif
Комбинированный режим HTML и PHP
Также мы можем написать конструкцию if..else
иным образом, переключаясь внутри конструкции на код HTML:
<!DOCTYPE html> <html> <head> <title>METANIT.COM</title> <meta charset="utf-8" /> </head> <body> <?php $a = 5; ?> <?php if ($a > 0) { ?> <h3>Переменная a больше нуля</h3> <?php } ?> </body> </html>
В данном случае само условие указывется в отдельном блоке php: <?php if ($a > 0) { ?>
. Важно, что при этом
этот блок содержит только открывающую фигурную скобку «{«.
Завершается конструкция if другим блоком php, который содержит закрывающую фигурную скобку: <?php } ?>
Между этими двумя блоками php располагается код, который отображается на html-странице, если условие в if истинно. Причем этот код представляет именно код html,
поэтому здесь можно разместить различные элементы html, как в данном случае элемент <h3>
При необходимости можно добавить выражения else
и elseif
:
<!DOCTYPE html> <html> <head> <title>METANIT.COM</title> <meta charset="utf-8" /> </head> <body> <?php $a = -5; ?> <?php if ($a > 0) { ?> <h3>Переменная a больше нуля</h3> <?php } elseif($a < 0) { ?> <h3>Переменная a меньше нуля</h3> <?php } else { ?> <h3>Переменная a равна нулю</h3> <?php } ?> </body> </html>
Также можно применять альтернативный синтаксис:
<!DOCTYPE html> <html> <head> <title>METANIT.COM</title> <meta charset="utf-8" /> </head> <body> <?php $a = 0; ?> <?php if ($a > 0): ?> <h3>Переменная a больше нуля</h3> <?php elseif($a < 0): ?> <h3>Переменная a меньше нуля</h3> <?php else: ?> <h3>Переменная a равна нулю</h3> <?php endif; ?> </body> </html>
Тернарная операция
Тернарная операция состоит из трех операндов и имеет следующее определение: [первый операнд - условие] ? [второй операнд] : [третий операнд]
.
В зависимости от условия тернарная операция возвращает второй или третий операнд: если условие равно true
, то возвращается второй операнд;
если условие равно false
, то третий. Например:
$a = 1; $b = 2; $z = $a < $b ? $a + $b : $a - $b; echo $z;
Если значение переменной $a меньше $b и условие истинно, то переменная $z будет равняться $a + $b
. Иначе значение $z будет равняться
$a - $b
elseif/else if | Руководство по PHP
(PHP 4, PHP 5, PHP 7)
Конструкция elseif, как ее имя и говорит есть сочетание
if и else. Аналогично
else, она расширяет оператор if
для выполнения различных выражений в случае, когда условие начального оператора
if эквивалентно
FALSE
. Однако, в отличии от
else, выполнение альтернативного
выражения произойдет только тогда, когда условие оператора elseif
будет являться равным TRUE
. К примеру,
следующий код может выводить a больше, чем
b, a равно b
or a меньше, чем b:
<?php
if ($a > $b) {
echo "a больше, чем b";
} elseif ($a == $b) {
echo "a равен b";
} else {
echo "a меньше, чем b";
}
?>
Может быть несколько elseif в одном
if выражении. Первое же выражение
elseif (если будет хоть одно) равное
TRUE
будет выполнено. В PHP вы также можете
написать ‘else if’ (в два слова), и тогда поведение будет идентичным
‘elseif’ (в одно слово). Синтаксически значение
немного отличается (если Вы знакомы с языком С, это тоже самое
поведение), но в конечном итоге оба выражения приведут к одному и
тому же результату.
Выражение elseif выполнится, если
предшествующее выражение if и предшествующие
выражения elseif эквивалентны
FALSE
, а текущий
elseif равен
TRUE
.
Замечание:
Заметьте, что elseif и else if
будут равнозначны только при использовании фигурных скобок,
как в примерах выше. Если используются двоеточие для определения условий
if/elseif, Вы не должны
разделять else if в два слова, иначе это вызовет фатальную ошибку в PHP.
<?php/* Некорректный способ: */
if($a > $b):
echo $a." больше, чем ".$b;
else if($a == $b): // Не скомпилируется.
echo "Строка выше вызывает фатальную ошибку.";
endif;/* Корректный способ: */
if($a > $b):
echo $a." больше, чем ".$b;
elseif($a == $b): // Заметьте, тут одно слово.
echo $a." равно ".$b;
else:
echo $a." не больше и не равно ".$b;
endif;?>
Вернуться к: Управляющие конструкции
Условие if-else в PHP
Условный оператор if-else часто называют оператором ветвления, т.к. он обеспечивает выполнение определенной команды только при условии истинности некоторого логического выражения. Его формат таков:
if (логическое выражение)
итструкция1;
else
итструкция2;
if (логическое выражение) итструкция1; else итструкция2; |
Если логическое выражение истинно,то выполняется инструкция1, а иначе — инструкция2. Конструкция else может опускаться.
Это своего рода точка принятия решения в программе. Представим что интерпретатор PHP это человек собирающийся перейти дорогу и напишем для него инструкцию:
$light = «зеленый»;
if ($light == «зеленый»){
echo «переходим дорогу»;
}
else{
echo»стоим на месте»;
}
$light = «зеленый»; if ($light == «зеленый»){ echo «переходим дорогу»; } else{ echo»стоим на месте»; } |
Рассмотрим эту конструкцию подробней. Мы пишем слово if и в круглых скобках указываем условие, после этого открываем фигурные скобки и в них описываем действие которое будет выполняться при этом условии. Дальше пишем слово else(что означает «иначе») и указываем в фигурных скобках как следует поступить программе, если первое условие не выполняется.
Оператор if-else вычисляет значение условного выражения и выполняет тот или иной фрагмент программного кода. Но что, если требуется проверить сразу несколько условий? Тут на помощь к нам придет конструкция elseif. Она позволяет проверять дополнительные условия, пока не будет найдено истинное или достигнут блок else.
С использованием инструкции elseif оператор if-else будет выглядить так:
if (условие) {
Блок, выполняемый если условие истинно
}
elseif (условие) {
Блок, выполняемый, если условие истинно
}
else {
Блок, выполняемый, если все условия ложны }
if (условие) { Блок, выполняемый если условие истинно } elseif (условие) { Блок, выполняемый, если условие истинно } else { Блок, выполняемый, если все условия ложны } |
Обратите внимание, после закрывающей фигурной скобки не следует ставить точку с запятой.
Один условный оператор можно вложить в другой:
<?php
$a=9;
$b=33;
if ($a > 0 && $b > 0){
if($a<$b){
echo «a меньше чем b»;
}
else{
echo «a больше чем b»;
}
}
?>
<?php $a=9; $b=33;
if ($a > 0 && $b > 0){ if($a<$b){ echo «a меньше чем b»; } else{ echo «a больше чем b»; }
}
?> |
Т.е. выполняется внешнее условие и если все ок(в нашем случае если обе переменные больше нуля), то начинает выполнятся внутреннее условие. Если же внешнее условие не выполнится, то ничего не произойдет — инструкция остановится.
Конструкция if-else имеет еще один альтернативный синтаксис:
if (логическое выражение):
команды;
elseif (другое логическое выражение):
другие команды;
else:
иначе команды;
endif
if (логическое выражение): команды; elseif (другое логическое выражение): другие команды; else: иначе команды; endif |
Обратите внимание на расположение двоеточия. Его пропуск считаеться синтаксической ошибкой. Блоки else и elseif можно пропустить.
Работа с конструкциями if-else, switch-case в PHP
Конструкция if-else
Для того, чтобы напрограммировать что-нибудь полезное, одних переменных далеко не достаточно. Нам нужен механизм, который позволит выполнять
определенный код в зависимости от каких-либо условий.
То есть нам нужно иметь возможность спросить у PHP ‘Если’.
Например так: если эта переменная меньше нуля,
то вывести ‘отрицательно’,
иначе (то есть если она больше нуля) вывести ‘положительно’.
В PHP для таких вопросов предназначена конструкция if, которая позволяет выполнять определенный
код при выполнении какого-либо условия:
<?php
if (логическое выражение) {
Этот код выполниться,
если логическое выражение верно (то есть равно true)
}
else
{
Этот код выполнится,
если логическое выражение неверно (то есть равно false)
}
?>
Обратите внимание на то, что блок else не обязателен.
Логическое выражение представляет собой тот самый вопрос, который мы хотим задать PHP. Например,
чтобы спросить ‘переменная $a больше нуля’ мы напишем так: $a > 0.
Примеры работы:
<?php
$a = 3;
/*
Если переменная $a больше нуля, то выведи 'верно',
иначе (если меньше или равна нулю) выведи 'неверно'
*/
if ($a > 0) {echo 'Верно!';} else {echo 'Неверно!';} //выведет 'Верно!'
?>
<?php
$a = -3;
/*
Если переменная $a больше или равна нулю, то выведи 'верно',
иначе (если меньше нуля) выведи 'неверно'
*/
if ($a >= 0) {echo 'Верно!';} else {echo 'Неверно!';} //выведет 'Неверно!'
?>
Сокращенный синтаксис
В случае, если в фигурный скобках if или else будет только одно выражение,
можно эти фигурные скобки не писать:
<?php
//Полный вариант:
if ($a == 0) {echo 'Верно!';} else {echo 'Неверно!';}
//Уберем скобки после if:
if ($a == 0) echo 'Верно!'; else {echo 'Неверно!';}
//Уберем скобки после else:
if ($a == 0) {echo 'Верно!';} else echo 'Неверно!';
/*
Уберем скобки и после if, и после else
(обратите внимание на точку с запятой - она осталась):
*/
if ($a == 0) echo 'Верно!'; else echo 'Неверно!';
?>
Равенство по значению и типу
Для того, чтобы сравнить на равенство следует использовать оператор двойное равно ==,
а не одиночное =, как можно было подумать.
Почему так? Потому что одиночное равно зарезервировано за присваиванием.
Смотрите пример:
<?php
$a = 0;
/*
Если переменная $a равна нулю, то выведи 'верно',
иначе (если не равна нулю) выведи 'неверно'
*/
if ($a == 0) echo 'Верно!'; else echo 'Неверно!'; //выведет 'Верно!'
?>
А следующий пример работать будет не так, как мы думаем:
<?php
$a = 0;
/*
Мы думаем оно работает так:
если переменная $a равна нулю, то выведи 'верно',
иначе (если не равна нулю) выведи 'неверно'.
На самом деле оно работает так:
переменной $a присвоить 1,
если удалось присвоить - то выведи 'верно',
иначе (если не удалось присвоить) выведи 'неверно'.
*/
if ($a = 1) echo 'Верно!'; else echo 'Неверно!'; //всегда будет выводить 'Верно!'
?>
Кроме оператора == существует еще и оператор ===. Их различие в том, что === сравнивает не только по значению, но и по типу,
а == сравнивает только по значению.
Чтобы полностью разобраться в этом, внимательно изучите примеры:
<?php
$a = '0'; //переменная $a представляет собой строку, а не число 0
if ($a == 0) echo 'Верно!'; else echo 'Неверно!';
/*
Выведет 'Верно!', так как проверяется только значение, но не тип.
Поэтому '0' равен 0.
*/
?>
<?php
$a = '0'; //переменная $a представляет собой строку, а не число 0
if ($a === 0) echo 'Верно!'; else echo 'Неверно!';
/*
Выведет 'Неверно!', так как строка '0'
не равна числу 0 при сравнении по типу.
*/
?>
Не равно
Для того, чтобы спросить ‘не равно’,
существует операторы != и !==.
Первый игнорирует различие в типах, а второй — нет.
<?php
$a = 0;
/*
Если переменная $a НЕ равна нулю, то выведи 'верно',
иначе (если не равна нулю) выведи 'неверно'
*/
if ($a != 0) echo 'Верно!'; else echo 'Неверно!'; //выведет 'Верно!', так как $a равно 0
?>
<?php
$a = 1;
/*
Если переменная $a НЕ равна нулю, то выведи 'верно',
иначе (если не равна нулю) выведи 'неверно'
*/
if ($a != 0) echo 'Верно!'; else echo 'Неверно!'; //выведет 'Неверно!', так как $a равно 0
?>
<?php
$a = '0';
/*
Если переменная $a НЕ равна нулю, то выведи 'верно',
иначе (если не равна нулю) выведи 'неверно'
*/
if ($a != 0) echo 'Верно!'; else echo 'Неверно!';
/*
Выведет 'Неверно!', так как $a равно '0',
а различие в типах игнорируется.
*/
?>
<?php
$a = '0';
/*
Если переменная $a НЕ равна нулю, то выведи 'верно',
иначе (если не равна нулю) выведи 'неверно'
*/
if ($a !== 0) echo 'Верно!'; else echo 'Неверно!';
/*
Выведет 'Верно!', так как $a равно '0',
а это не равно 0 при сравнении по типу.
*/
?>
Все операции сравнения
Возможные операции сравнения, которые можно использовать внутри if:
$a == $b | $a равно $b |
$a === $b | $a равно $b и они одинаковы по типу |
$a != $b | $a не равно $b |
$a !== $b | $a не равно $b или $a равно $b, но ни разные по типу |
$a | $a меньше $b |
$a > $b | $a больше $b |
$a | $a меньше или равно $b |
$a >= $b | $a больше или равно $b |
Функция empty
Зачастую в веб-программировании возникает следующая проблема: необходимо проверить переменную на пустоту.
Переменная будет пустая, если она равна нулю, » (пустой строке),
false или null (то есть не определена ранее).
Проверка на пустоту выполняется с помощью функции empty():
<?php
$a = null;
//Если $a пустое, то...
if (empty($a)) echo 'Верно!'; else echo 'Неверно!'; //выведет 'Верно!'
?>
<?php
$a = 0;
//Если $a пустое, то...
if (empty($a)) echo 'Верно!'; else echo 'Неверно!'; //выведет 'Верно!'
?>
<?php
$a = '';
//Если $a пустое, то...
if (empty($a)) echo 'Верно!'; else echo 'Неверно!'; //выведет 'Верно!'
?>
<?php
$a = 'hi';
//Если $a пустое, то...
if (empty($a)) echo 'Верно!'; else echo 'Неверно!'; //выведет 'Неверно!', так как $a не пустая
?>
Чаще возникает обратная задача — проверка на то, что переменная является НЕ пустой.
Отрицание НЕ можно сделать с помощью оператора ‘!’:
<?php
$a = null;
//Если $a Непустое, то...
if (!empty($a)) echo 'Верно!'; else echo 'Неверно!'; //выведет 'Неверно!', так как $a пустое
?>
Функция isset
Аналогом empty является функция isset.
Она проверяет существует ли переменная
(то есть то, что она не равна null). Смотрите примеры:
<?php
$a = 'hello';
//Если $a существует, то...
if (isset($a)) echo 'Верно!'; else echo 'Неверно!';
/*
Выведет 'Верно!', так как $a существует.
*/
?>
<?php
$a = 0;
//Если $a существует, то...
if (isset($a)) echo 'Верно!'; else echo 'Неверно!';
/*
Выведет 'Верно!', так как $a существует.
*/
?>
<?php
/*
Пусть переменную $a вообще не определяли выше в коде
(это все равно, что присвоить ей null).
Если $a существует, то...
*/
if (isset($a)) echo 'Верно!'; else echo 'Неверно!'; //выведет 'Неверно!'
?>
Аналогично проверятся на НЕ существование (через !isset):
<?php
$a = 3;
//Если $a НЕ существует то...
if (!isset($a)) echo 'Верно!'; else echo 'Неверно!';
/*
Выведет 'Неверно!', так как $a существует.
*/
?>
Несколько условий сразу: or и and
Иногда может быть нужно составить какое-то сложное условие, например,
пользователь вводит месяц своего рождения и вам нужно проверить,
что введенное число больше или равно 1 и меньше либо равно 12 (так как в году 12 месяцев).
Для этого существуют операторы and (логическое И) и or (логическое ИЛИ).
<?php
$a = 3;
$b = -3;
//Если $a больше нуля и $b одновременно меньше нуля то...
if ($a > 0 and $b < 0) echo 'Верно!'; else echo 'Неверно!'; //выведет 'Верно!'
$a = 3;
//Если $a больше или равно 1 и меньше или равно 12 то...
if ($a >= 1 and $a <= 12) echo 'Верно!'; else echo 'Неверно!'; //выведет 'Верно!'
$a = -3;
$b = -3;
/*
Если $a больше нуля ИЛИ $b меньше нуля - хотя бы один из них, то...
выведет 'Верно!', так как хотя $a и не больше нуля,
но одно из условий - $b < 0 - выполнится!
*/
if ($a > 0 or $b < 0) echo 'Верно!'; else echo 'Неверно!';
?>
Вместо and можно писать &&, а вместо or — ||.
Работа с логическими переменными
Многие функции PHP в результате своей работы возвращают либо true (истина), либо false (ложь).
Эти значения довольно удобны при своей работе,
но новичкам бывает довольно сложно понять их.
Представим себе, что переменная $a равна true. В таком случае конструкцию if можно записать так:
<?php
$a = true;
//Если $a равно true, то...
if ($a == true) echo 'Верно!'; else echo 'Неверно!';
/*
Выведет 'Верно!', так как $a равно true.
*/
?>
Так как такие сравнения довольно распространены в PHP, то существует специальный прием,
облегчающий работу (но не понимание, к сожалению).
Прием такой: конструкцию $a == true можно заменить на более простую:
вместо if ($a == true) написать if ($a) и она будет работать аналогично.
Следует пользоваться второй конструкцией, так как она проще.
<?php
/*
Заменим $a == true на более простую:
вместо if ($a == true) напишем if ($a):
*/
$a = true;
//Если $a равно true, то...
if ($a) echo 'Верно!'; else echo 'Неверно!'; //выведет 'Верно!', так как $a равно true
$a = true;
//Если $a НЕ true (то есть false!), то...
if (!$a) echo 'Верно!'; else echo 'Неверно!'; //выведет 'Неверно!', так как $a равно true
?>
Также обратите внимание на следующие примеры:
<?php
//Данное выражение всегда будет выводить 'Верно'
if (true) echo 'Верно!'; else echo 'Неверно!';
//Данное выражение всегда будет выводить 'Неверно'
if (false) echo 'Верно!'; else echo 'Неверно!';
//Данное выражение всегда будет выводить 'Неверно'
if (!true) echo 'Верно!'; else echo 'Неверно!';
//Данное выражение всегда будет выводить 'Верно'
if (!false) echo 'Верно!'; else echo 'Неверно!';
?>
Работа вместе с HTML
PHP устроен таким образом, что его можно использовать в одном файле с HTML.
Представьте, что у нас возникает такая задача: если пользователь авторизован — вывести его логин,
иначе ссылку на авторизацию. Ее можно решить, смешивая PHP код и HTML код вместе.
Посмотрите примеры:
<?php
$a = true;
if ($a) {
//Данный HTML код будет виден на экране только если $a равно true
echo '<p>Здесь выведем какой-то HTML!</p>';
}
?>
Однако, очень часто это может оказаться неудобным,
особенно если размеры HTML кода очень большие.
Поэтому можно воспользоваться следующим приемом с разрывом PHP:
<?php
//Пример на работу вместе с HTML
$a = true;
if ($a) {
/*
Мы оборвали PHP, но HTML код ниже
все равно будет виден на экране только если $a равно true.
*/
?>
<p>Здесь выведем какой-то HTML!</p>
<?php
/*
Здесь мы продожаем PHP, открыв скобку <?php
и закрываем фигурную скобку от ифа.
*/
}
?>
Вложенные if
Предположим, нам необходимо спросить у PHP такую вещь:
если переменная $a пуста, то вывести ‘Введите $a’,
если не пуста, то проверить — больше нуля $a или нет.
Если больше нуля — то вывести ‘Больше нуля!’,
если меньше — вывести ‘Меньше нуля’.
Одной конструкцией if здесь не обойтись,
нужно использовать две таким образом, чтобы одна была внутри другой:
<?php
if (empty($a)) { //если переменная $a пуста
echo 'Введите $a!';
} else { //если переменная $a НЕ пуста
if ($a > 0) { //спрашиваем, больше ли нуля переменная $a
echo 'Больше нуля!';
} else {
echo 'Меньше нуля!';
}
}
?>
Конструкция elseif
Недостатком конструкции предыдущего примера является большое количество фигурных скобок.
Поэтому была изобретена специальная конструкция elseif (пишется слитно!),
которая представляет собой одновременно и else, и начало вложенного if:
<?php
//Решение предыдущей задачи через конструкцию elseif
if (empty($a)) {
echo 'Введите $a!';
} elseif ($a > 0) { //одновременно выполняется else для empty($a) и спрашивается больше ли $a нуля
echo 'Больше нуля!';
} else {
echo 'Меньше нуля!';
}
?>
Можно использовать несколько elseif,
но злоупотреблять этим не стоит
(лучше будет воспользоваться конструкцией switch-case, о которой ниже).
Несколько if
Пусть у нас есть такая задача:
сайт поддерживает 3 языка — русский, английский, немецкий.
Переменная $lang может принимать 3 значения — ‘ru’, ‘en’ и ‘de’.
В зависимости от значения переменной $lang следует вывести фразу на одном из языков.
Решение: можно было бы воспользоваться вложенными ифами или elseif.
Выглядело бы это примерно так:
<?php
//Решение задачи через elseif – не самое удачное
if ($a == 'ru') { //фраза на русском
echo 'Русский текст';
} elseif ($a == 'en') { //фраза на английском
echo 'Английский текст';
} elseif ($a == 'de') { //фраза на немецком
echo 'Немецкий текст';
}
?>
Такое решение не слишком красивое — блок else здесь не нужен!
Проще всего будет написать не один длинный if с несколькими else,
а несколько if вообще без else:
<?php
//Решение задачи через несколько if – оно намного лучше
if ($a == 'ru') { //фраза на русском
echo 'Русский текст';
}
if ($a == 'en') { //фраза на английском
echo 'Английский текст';
}
if ($a == 'de') { //фраза на немецком
echo 'Немецкий текст';
}
/*
В данном коде сработает только один из ифов,
так как $a может иметь только одно из значений
*/
?>
Однако, это решение тоже не слишком удобно.
Представьте, что у вас будет не три языка, а 10 — вам придется написать 10 конструкций if.
Для таких случаев существует конструкция switch-case.
Конструкция switch-case
Конструкция switch-case представляет собой альтернативу if-else,
ее рекомендуется использовать в случае множественного выбора
(например, 10 различных языков, как в нашей задаче).
Изучите ее синтаксис:
<?php
switch ($переменная) {
case 'значение1':
здесь код, который выполнится в случае, если переменная имеет значение1;
break;
case 'значение2':
здесь код, который выполнится в случае, если переменная имеет значение2;
break;
case 'значение3':
здесь код, который выполнится в случае, если переменная имеет значение3;
break;
default:
этот код выполнится в случае, если переменная не совпала ни с одним значением;
break;
}
?>
Решим нашу задачу с тремя языками с помощью данной конструкции:
<?php
switch ($lang) {
case 'ru':
echo 'Русский текст';
break;
case 'en':
echo 'Английский текст';
break;
case 'de':
echo 'Немецкий текст';
break;
default:
echo 'Данный язык не поддерживается';
break;
}
?>
Что вам делать дальше:
Приступайте к решению задач по следующей ссылке: задачи к уроку.
Когда все решите — переходите к изучению новой темы.
Оператор IF в PHP | Условие IF ELSE, несколько условий, альтернативный синтаксис
Оператор IF
Оператор IF позволяет выполнить кусок кода только при выполнении каких-либо условий.
Например, мы можем уведомить пользователя, что дорогие товары доставляются бесплатно:
<?php
$price = 1000;
// Этот код выполнится только если $price > 500
if($price > 500)
echo 'Бесплатная доставка!<br>';
// А этот код выполнится в любом случае
echo 'Спасибо за заказ!';
?>
В примере выше IF выполняет следующую за ним команду, если выражение в круглых скобках принимает значение true.
Для выполнения нескольких команд нужно поместить их в фигурные скобки:
<?php
$price = 120;
// Этот код выполнится только при $price > 100
if($price > 100)
{
$price -= 10;
echo 'Ваша скидка 10р';
}
// А этот код выполнится в любом случае
echo 'Спасибо за заказ!';
?>
Конструкция IF ELSE
Условие может быть выполнено или не выполнено. Иногда возникает необходимость выполнить разный код для этих ситуаций. Для этого в PHP есть конструкция else:
<?php
// Для одной команды
if(100 > 50)
echo 'Условие верно.<br>';
else
echo 'Условие неверно.<br>';
// Для нескольких команд
if(200 > 100)
{
echo 'Условие ';
echo 'верно.';
}
else
{
echo 'Условие ';
echo 'неверно.';
}
?>
Существуют разные стандарты оформления PHP-кода. Если показанный выше кажется вам слишком громоздким, можете писать более компактно:
<?php
if(200 > 100) {
echo 'Условие ';
echo 'верно.';
} else {
echo 'Условие ';
echo 'неверно.';
}
Несколько условий с ELSEIF
С помощью конструкции elseif мы можем добавлять неограниченное количество условий. Выполнено будет только первое из подходящих условий, остальные будут проигнорированы.
Разработаем систему, которая сама рассчитывает наценку на товар в зависимости от его цены:
<?php
$price = 150;
if($price < 50)
$price *= 1.3; // Умножаем цену на 30%
elseif($price < 100)
$price *= 1.2; // Умножаем цену на 20%
elseif($price < 200)
$price *= 1.1; // Умножаем цену на 10%
else
$price *= 1.05; // Умножаем цену на 5%
echo 'Стоимость товара: ', $price; // Стоимость товара: 165
?>
В примере выше выполнилось только третье условие. Первые два не соответствовали правилам, а последнее пропущено, поскольку уже выполнилось предыдущее.
Альтернативный синтаксис IF ELSE ENDIF
Нередко возникают ситуации, когда использование фигурных скобок делает код более запутанным. В этом случае удобно использовать альтернативный синтаксис:
<?php if($price > 100): ?>
<div></div>
<div></div>
<?php elseif($price < 50): ?>
<div></div>
<div></div>
<?php else: ?>
<div></div>
<div></div>
<?php endif; ?>
Используется такой синтаксис чаще всего в html-шаблонах, чтобы избавиться от фигурных скобок. Для сравнения, тот же кусок кода в обычном синтаксисе:
<?php if($price > 100) { ?>
<div></div>
<div></div>
<?php } elseif($price < 50) { ?>
<div></div>
<div></div>
<?php } else { ?>
<div></div>
<div></div>
<?php } ?>
Выглядит уже менее приятно, а при наличии других операторов с фигурными скобками будет совсем беда. Поэтому при формировании HTML-страниц не забывайте про альтернативный синтаксис.
PHP в противном случае — javatpoint
PHP оператор if else используется для проверки условия. Есть несколько способов использования оператора if в PHP.
PHP Оператор if
PHP оператор if позволяет условное выполнение кода. Выполняется, если условие верно.
Оператор If используется для выполнения блока кода, существующего внутри оператора if, только если указанное условие истинно.
Синтаксис
if (условие) {
// код для выполнения
}
Схема
Пример
php $ num = 12; если (число $
Выход:
Заявление PHP If-else
PHP оператор if-else выполняется независимо от того, истинно ли условие или ложно.
Оператор If-else немного отличается от оператора if. Он выполняет один блок кода, если заданное условие — true, , и другой блок кода, если условие — false, .
Синтаксис
if (условие) {
// код для выполнения, если true
}еще{
// код для выполнения, если ложь
}
Схема
Пример
php $ num = 12; if ($ num% 2 == 0) { echo "$ num - четное число"; }еще{ echo "$ num - нечетное число"; } ?>
Выход:
PHP Заявление if-else-if
PHP if-else-if — это специальный оператор, используемый для объединения нескольких if ?.еще заявления. Итак, с помощью этого оператора мы можем проверить несколько условий.
Синтаксис
if (condition1) {
// код для выполнения, если условие1 истинно
} elseif (условие2) {
// код для выполнения, если условие 2 истинно
} elseif (condition3) {
// код для выполнения, если условие 3 истинно
….
} еще{
// код для выполнения, если все заданные условия ложны
}
Схема
Пример
php $ mark = 69; if ($ mark <33) { эхо "провал"; } else if ($ mark> = 34 && $ mark <50) { эхо "Д класс"; } else if ($ mark> = 50 && $ mark <65) { эхо «троечку»; } else if ($ mark> = 65 && $ mark <80) { эхо «Б класс»; } else if ($ mark> = 80 && $ mark <90) { эхо «Отличник»; } else if ($ mark> = 90 && $ mark <100) { эхо «А + оценка»; } еще { echo «Неверный ввод»; } ?>
Выход:
PHP вложен, если Заявление
Вложенный оператор if содержит блок if внутри другого блока if.Внутренний оператор if выполняется только тогда, когда указанное условие во внешнем операторе if имеет значение true .
Синтаксис
if (условие) {
// код для выполнения, если условие истинно
if (условие) {
// код для выполнения, если условие истинно
}
}
Схема
Пример
php
$ age = 23;
$ национальность = "индиец";
// применение условий по национальности и возрасту
if ($ национальность == "индиец")
{
if ($ age> = 18) {
echo «Имеет право голосовать»;
}
еще {
echo «Не имеет права голоса»;
}
}
?>
Выход:
Пример переключателя PHP
php $ a = 34; $ b = 56; $ c = 45; if ($ a <$ b) { if ($ a <$ c) { echo "$ a меньше, чем $ b и $ c"; } } ?>
Выход:
34 меньше 56 и 45
PHP Условные операторы if, else и elseif
При написании программ / скриптов будут сценарии, в которых вы захотите выполнить конкретный оператор только , если удовлетворяет какое-то условие.В таких ситуациях мы используем Условные операторы .
В PHP существует 4 различных типа условных операторов.
-
если
операторы -
если ... еще
операторов -
if ... elseif ... else
операторы - переключатель
Мы рассмотрим операторы switch
в следующем руководстве.
Оператор
if
Когда мы хотим выполнить некоторый код, когда условие истинно , мы используем оператор if
.
Синтаксис:
если (условие)
{
// код для выполнения, если 'условие' истинно
}
Вот простой пример,
Php
$ age = 20;
if ($ age
Оператор
if ... else
Когда мы хотим выполнить некоторый код, когда условие истинно , и некоторый другой код, когда это условие ложно , тогда мы используем пару if ... else
.
Синтаксис:
если (условие)
{
// код для выполнения, если 'условие' истинно
}
еще
{
// код для выполнения, если 'условие' ложно
}
Вот простой пример,
Php
$ age = 26;
if ($ age
Наслаждайтесь напитками
if...else ... elseif
выписка
Когда мы хотим выполнить другой код для разных наборов условий и у нас есть более двух возможных условий, мы используем пару if ... elseif ... else
.
Синтаксис:
если (условие1)
{
// код для выполнения, если 'condition1' истинно
}
elseif (условие2)
{
// код для выполнения, если 'condition2' истинно
}
еще
{
/ * код, который будет выполняться, если оба 'condition1'
и 'condition2' ложны * /
}
Вот простой пример,
Php
// скорость в км / ч
$ speed = 110;
if ($ speed 60 && $ speed
Это опасно
В приведенном выше примере мы также использовали логический оператор &&
.Логические операторы очень полезны при написании нескольких условий вместе.
PHP IF, ELSEIF, ELSE и вложенные условные операторы
В этом руководстве мы рассмотрим различные способы принятия решений в программе PHP с использованием условных операторов.
Что такое условные операторы в PHP?
Условные операторы в PHP используются для принятия решений. С помощью условных операторов вы можете написать код, который выполняет действия в зависимости от того, истинно или ложно определенное условие.
В PHP есть несколько различных типов условных операторов, например:
- IF заявление
- ELSE IF заявление
- ELSE заявление
PHP IF заявление
Оператор IF
выполняет блок кода, только если данное условие оценивается как истинное. Вот пример:
$ оценка = 95;
if ($ grade> = 50) {
echo "Вы пропустили тему!";
}
Когда приведенный выше код выполняется, он дает следующий результат:
Вы прошли тему!
Следовательно, в приведенном выше коде условие теста было $ grade> = 50
.Поскольку оценка была инициализирована на 95, условие теста было оценено как ИСТИНА, и программа выполнила код в блоке IF.
PHP ELSE IF Заявление
Оператор ELSE IF
в PHP позволяет писать блоки кода для нескольких условий. Оператор ELSE IF проверяется только в том случае, если предыдущее условие оценивается как ложное.
Давайте посмотрим на пример:
$ число = 3;
if ($ number == 1) {
эхо «Число 1»;
} else if ($ number == 2) {
эхо «Число 2»;
} else if ($ number == 3) {
эхо «Число 3»;
}
Выход:
Номер 3
В приведенном выше примере программа проверяет все условные операторы, пока не достигнет последнего оператора ELSE IF, который оценивается как TRUE, тем самым выполняя блок кода в нем.
PHP ELSE Заявление
Оператор ELSE
в PHP выполняется только тогда, когда все предыдущие условия оцениваются как ложные. Оператор ELSE не принимает никаких условий и всегда будет выполняться, если вся цепочка условий до него была ЛОЖЬ.
Пример:
$ число = 25;
if ($ number == 1) {
эхо «Число 1»;
} else if ($ number == 2) {
эхо «Число 2»;
} еще {
echo "Ваш номер". номер $;
}
Выход:
Ваш номер 25
PHP Вложенные операторы IF
Как и большинство других языков программирования, PHP также допускает вложенные операторы IF.Это означает, что вы можете иметь несколько условий в другом условии, например, оператор IF… ELSE в блоке IF.
Вложенные операторы позволяют программистам принимать сложные решения в рамках своих программ.
Пример:
$ число = 0;
if ($ number> = 0) {
if ($ number == 0) {
echo "Число равно нулю";
} еще {
echo "Положительное число";
}
еще {
echo «Отрицательное число»;
}
Выход:
Число нулевое
Программа может иметь несколько вложенных операторов друг в друге.Однако чрезмерное использование вложенных операторов может сделать ваш код более запутанным и вызвать логические ошибки. Таким образом, его следует по возможности избегать.
PHP if..else и elseif: Разъяснено наглядными примерами
Назначение if..else в PHP
if else - это оператор принятия решений в PHP и многих других языках программирования.
Оператор if в PHP будет выполнять один блок кода между двумя или многими вариантами, поэтому решение принимается на основе определенных заданных критериев.
Синтаксис PHP if оператор
Если есть только два варианта, вы можете использовать просто if с оператором else . Если выражение в маленьких скобках истинно, оно выполнит блок внутри оператора if, в противном случае будет выполнен блок кода else.
if ($ Number == 3) { echo "Показать что-нибудь, если число равно 3"; } else { echo "Для любого другого числа, или условие неверно!"; } |
Примечание. Вы также можете использовать только , если , без оператора else
Если вариантов больше, используйте , если..elseif с операторами else . Например:
1 2 3 4 5 6 7 8 9 10 11 12 13 140002 18 19 20 21 22 23 24 25 26 27 28 29 | if ($ Месяц == «Янв») echo «Выполнить код января»; elseif ($ Месяц == «Фев») echo «Выполнить код февраля»; elseif ($ Месяц == «Мар») echo «Выполнить мартовский код»; else echo «Любой другой месяц»; |
Примечание. Если вам нужно выполнить несколько строк, заключите каждый блок в фигурные скобки.
Я объясню и то, и другое на визуальных примерах в этом руководстве, чтобы вы могли понять, как использовать if..else с HTML или другими веб-элементами, поскольку PHP обычно используется для веб-проектов.
Простой пример для начала - if..else
Прежде чем перейти к выполнению блока в операторе if..else на основе выбора пользователя, в этом примере я просто использую статическое значение, чтобы показать, как это работает, чтобы дать представление, если вы новичок.
В этом примере я просто объявил переменную и присвоил ей числовое значение.
Посмотреть онлайн-демонстрацию и код
Только
, в примере используется оператор if..else. Если заданное число равно 3, оно будет оценено как истинное в операторе if, поэтому оператор внутри оператора if будет выполнен. Если это какое-то другое число, будет выполняться часть инструкции PHP else. Вы можете скопировать код и попробовать его в своем редакторе PHP.
Оператор PHP elseif с раскрывающимся списком выбора, div и CSS
Ниже приведен пример использования if с оператором PHP elseif.Когда вы откроете демонстрационную страницу, отобразится раскрывающийся список HTML. В раскрывающемся списке вы можете выбрать цвет.
В случае изменения раскрывающегося списка вызывается тот же файл PHP, где я использовал if с оператором elseif.
При выборе цвета в раскрывающемся списке будет отображаться div с тем же цветом.
Сначала посмотрите демо, а затем небольшое описание:
Посмотреть онлайн-демонстрацию и код
В этом примере в операторах if и elseif PHP используется следующий блок кодов:
1 2 3 4 5 6 7 8 9 10 11 12 13 140002 14 18 19 20 21 22 23 24 25 26 27 28 29 30 000 000 34 35 36 37 38 39 40 41 42 43 44 45 46 49 0002 47 00030002 47 0003 51 52 53 | Php $ Color = $ _REQUEST ["цвет"]; if ($ Color == "красный") { echo " "; } elseif ($ Color == "оранжевый") { echo " "; } elseif ($ Color == "желтый") { echo " "; } elseif ($ Color == "зеленый") { echo " "; } elseif ($ Color == "бордовый") { echo " "; } elseif ($ Color == "синий") { echo " "; } elseif ($ Color == "розовый") { echo " "; } else { echo («Выберите цвет из раскрывающегося списка»); } ?> |
Как видите, сначала выбранный цвет выбирается с помощью $ _REQUEST [«color»]; и присвоено переменной $ color .После этого используется оператор if, в котором проверяется значение цвета. Если значение равно «red», он будет отображать div красного цвета с помощью оператора echo.
Если в раскрывающемся списке выбран оранжевый, оператор elseif после оператора if будет оценен как истина. Таким образом отображается div оранжевого цвета. Если в раскрывающемся списке выбран какой-либо другой цвет, он будет продолжать проверять операторы elseif.
Ниже приведен код HTML для раскрывающегося списка Где файл PHP вызывается с выбранным цветом:
1 2 3 4 5 6 7 8 9 10 11 12 13 140002 18 19 20 21 22 23 |
|
Обратите внимание, что этот пример просто демонстрирует использование if..elseif заявления. В реальном времени вы можете использовать JavaScript для изменения цвета div или некоторых других элементов на веб-странице.
Пример PHP if else для проверки формата пароля
В этом примере оператора if..else пользователю предлагается ввести адрес электронной почты в текстовое поле. После ввода адреса электронной почты и нажатия кнопки отправки скрипт PHP проверит формат адреса электронной почты и отобразит соответствующее сообщение.
Посмотреть демонстрацию онлайн:
Посмотреть онлайн-демонстрацию и код
Когда вы отправляете кнопку, значение текстового поля назначается переменной $ address с помощью $ _POST [‘address’] .Эта переменная проверяется в условии PHP if else для проверки правильности формата электронной почты с помощью встроенной функции FILTER_VALIDATE_EMAIL:
if (filter_var ($ address, FILTER_VALIDATE_EMAIL)) { echo "$ address email is valid!"; } else { echo "$ address - недействительный адрес электронной почты!"; } |
Если введенный адрес электронной почты правильный, условие if будет истинным, и оператор echo отобразит данную строку.В противном случае оператор else выполнит данный оператор.
Пример if..else с циклом foreach и массивами
В этом примере я буду использовать оператор if с циклом foreach и массивами. Для этого создается простой числовой массив из пяти элементов.
Это элементы: 5, 10, 15, 20, 25. После этого цикл foreach используется для отображения этих элементов массива.
Задача - выйти из цикла foreach, когда он достигнет значения 15 или более.
Посмотреть онлайн-демонстрацию и код
Для этого я просто использовал оператор if. В операторе if дано следующее условие:
if ($ i> = 15) { break; } |
Итак, как только значение переменной $ i достигнет 15 (что является значением текущего элемента массива), оператор break остановит цикл, и управление перейдет к следующей строке за пределами цикла foreach.
Полный код приведен на демонстрационной странице.
Пример вложенного оператора if
В определенных сценариях может потребоваться проверка двух или более условий после того, как первое условие станет истинным. В этом случае вы должны выполнить какое-то действие, если первое условие истинно, а затем проверить второе условие, используя другое if..else внутри первого оператора if.
Использование другого оператора if внутри первого оператора if вложенного if. См. Следующую структуру:
1 2 3 4 5 6 7 8 9 10 11 12 13 140002 18 19 | if ($ a == 10) { echo («Значение 10»); if ($ b == 20) { echo («Значение b равно 20»); } } // закрытие первым, если statemnt else { echo ("Значение a не 10"); } |
Итак, внутри фигурных скобок первого оператора if перед его закрытием используется другой оператор if.Это запустит вложенный, если , где вы можете проверить другое условие. Вы можете пойти дальше и использовать другой вложенный оператор if внутри второго оператора if и так далее.
После использования оператора if (с else или elseif) внутри первого if закройте фигурную скобку. Там вы можете использовать elseif или else, который будет относиться к первому оператору if.
Заключение:
Операторы if..else, elseif в PHP используются для принятия решений на основе некоторых критериев. Вы должны указать выражение в выражении if, которое вычисляется.Если он возвращается как истина, он выполнит указанные действия, в противном случае он перейдет к следующему оператору elseif (если он предоставлен). Если все условия ложны, будет выполняться часть else, и после этого элемент управления перейдет к следующей строке кода за пределами оператора if.
Вы можете использовать операторы сравнения, такие как ==,! =,>, <, <= И т. Д., И логические операторы, такие как and, or, &&, || и т.д., чтобы оценить состояние.
Если у вас много блоков elseif, вы можете рассмотреть возможность использования оператора switch PHP.
PHP, если операторы
PHP включает условные операторы, такие как оператор If. Оператор If может использоваться для запуска другого кода в зависимости от значения предоставленной ему переменной.
Вы используете PHP Если операторы , когда вы хотите, чтобы ваша программа выполняла блок кода, только если определенное условие истинно. Другими словами, вы можете сказать своей программе: «, если что-то правда, то выполнить этот фрагмент кода».
Синтаксис
если (условие)
код, который будет выполняться, если условие истинно;
Пример
В следующем примере мы создаем переменную с именем «favouriteFruit» и присваиваем ей значение. Затем мы сравниваем значение со строкой: «Гранат». Если два значения совпадают, мы выводим текст.
Два знака равенства ( ==
) - это оператор сравнения (он сравнивает два значения). Если это условие истинно, код отображается в фигурных скобках ( {
и }
). Фигурные скобки необходимы только в том случае, если вы выводите несколько строк кода. Если вы выводите только одну строку кода (как и мы), они необязательны.
$ favourite = "Гранат";
if ($ favourite == "Гранат")
{
echo "Ваш любимый фрукт содержит около 7% клетчатки.";
}
В приведенном выше примере получается следующее:
Ваш любимый фрукт содержит около 7% клетчатки.
Заявление if Else
Мы можем добавить else к нашему оператору if, чтобы заставить наше приложение делать что-то еще, если условие не истинно.
Пример:
$ FavoriteFruit = "Инжир";
if ($ favourite == "Гранат")
{
echo "Ваш любимый фрукт содержит около 7% клетчатки.";
}
еще
{
echo "Извините, я не знаю, сколько клетчатки содержится в этом фрукте.";
}
В приведенном выше примере получается следующее:
Извините, я не знаю, сколько клетчатки содержится в этом фрукте.
If ... Elseif Заявление
Допустим, мы узнали содержание клетчатки в другом фрукте. Затем мы могли бы добавить elseif к нашему оператору if.Таким образом, мы могли бы включить собственное сообщение для нового фрукта. Фактически, мы могли бы использовать elseif столько раз, сколько захотим.
Пример:
$ FavoriteFruit = "Личи";
if ($ favourite == "Гранат")
{
echo «Ваш любимый фрукт содержит около 7% клетчатки.»;
}
elseif ($ favourite == "Личи")
{
echo "В твоем любимом фрукте содержится около 1 штуки.5% клетчатки. ";
}
еще
{
echo «Извините, я не знаю, сколько клетчатки содержится в этом фрукте»;
}
В приведенном выше примере получается следующее:
Ваш любимый фрукт содержит около 1,5% клетчатки.
4.9. Условные операторы - вкратце о PHP [Книга]
PHP позволяет вам выбирать, какое действие выполнять в зависимости от результата выполнения условия.Это условие может быть любым, которое вы выберете, и вы можете комбинировать условия, чтобы сделать действия более сложными. Вот рабочий пример:
Php $ Возраст = 20; if ($ Age <18) { print «Ты молод - наслаждайся! \ n»; } еще { print "Вам не исполнилось 18 лет \ n"; } if ($ Age> = 18 && $ Age <50) { print "Вы в самом расцвете сил \ n"; } еще { print "Вы не в самом расцвете сил \ n"; } if ($ Age> = 50) { print «Скоро на пенсию - ура! \ n»; } еще { print «На пенсию скоро не уйдешь :(»; } ?>
На самом базовом уровне PHP оценивает , если
операторов слева направо, то есть сначала проверяется, больше ли $ Age
или равно 18, а затем проверяется, меньше ли $ Age
50.Двойной амперсанд, &&
, означает, что оба утверждения должны быть истинными, если должен быть выполнен вывод «Вы находитесь в самом расцвете сил \ n». Код
должен быть выполнен - если одно из утверждений неверно для некоторых вместо этого печатается причина: «Вы не в самом расцвете сил». Порядок проверки условий зависит от приоритета операторов; это рассматривается в следующей главе.
Помимо &&
, есть еще ||
(символ трубы напечатан дважды), что означает ИЛИ.В этой ситуации весь оператор оценивается как истинный, если выполняется какое-либо из проверяемых условий.
Есть несколько способов сравнить два числа. Мы только что рассмотрели <(меньше чем), <= (меньше или равно) и> = (больше или равно). Мы рассмотрим полный список позже, но сначала я хочу упомянуть одну важную проверку: = =, или два знака равенства, соединенные вместе. Это означает «равно». Следовательно, 1 == 1
истинно, а 1 == 2
ложно.
Код, который должен выполняться, если оператор истинен, находится в собственном блоке (помните, что блок начинается с {и заканчивается}), а код, который должен выполняться в противном случае, находится в блоке else
. Это останавливает PHP от попыток выполнить как истинные, так и ложные действия.
Следует отметить одну ключевую вещь: PHP применяет «короткое замыкание операторов , если
» - именно здесь PHP будет пытаться выполнять как можно меньше условной работы, поэтому он в основном прекращает проверку условных операторов, если уверен, что может остановиться.Например:
if ($ Age> 10 && $ Age <20)
Если $ Age
оценивается как 8, первая проверка ( $ Age> 10
) завершится неудачно, поэтому PHP не будет проверять его на соответствие 20. Это означает, что вы можете, например, проверить, установлена ли переменная и имеет ли она определенное значение - если переменная не установлена, PHP закоротит оператор if
и не будет проверять его значение. Это хорошо, потому что если вы проверите значение неустановленной переменной, PHP отметит ошибку.
Полезным дополнением к операторам if
является оператор elseif
, который позволяет объединять условия в цепочку более разумным способом:
Php if ($ Age <10) { print «Вам меньше 10 лет»; } elseif ($ Age <20) { print «Вам меньше 20 лет»; } elseif ($ Age <30) { print «Вам меньше 30 лет»; } elseif ($ Age <40) { print «Вам меньше 40 лет»; } еще { печать «Тебе больше 40»; } ?>
Предупреждение
Пользователи Perl должны помнить, что оно пишется как elseif
, а не elsif
.
Вы можете добиться того же эффекта с помощью операторов if
, но с помощью elseif
легче читать. Обратной стороной этой системы является необходимость многократной проверки переменной $ Age
.
Если вам нужно выполнить только один оператор кода, вы можете полностью обойтись без фигурных скобок. Это проблема с удобочитаемостью.
Итак, эти два фрагмента кода одинаковы:
if ($ banned) { print «Вас забанили!»; } if ($ banned) выведите «Вы забанены!»;
Основное руководство по оператору if PHP с лучшими практиками
Резюме : в этом руководстве вы узнаете об операторе if PHP и о том, как его использовать для выполнения блока кода условно.
Введение в оператор if PHP
Оператор if
позволяет выполнять оператор, если выражение оценивается как true
. Ниже показан синтаксис оператора if
:
Язык кода: HTML, XML (xml)
Php если (выражение) утверждение;
В этом синтаксисе PHP сначала вычисляет выражение
. Если выражение
оценивается как истинное значение
, PHP выполняет оператор
.В случае, если выражение оценивается как false
, PHP просто игнорирует оператор
.
На следующей блок-схеме показано, как работает оператор if
:
В следующем примере оператор if
используется для отображения сообщения, если для переменной $ is_admin
установлено значение true
:
Язык кода: HTML, XML (xml)
Php $ is_admin = истина; если ($ is_admin) echo 'Добро пожаловать, админ!';
Поскольку $ is_admin
равно true
, сценарий выводит следующее сообщение:
Добро пожаловать, администратор!
Фигурные скобки
Если вы хотите выполнить несколько операторов в блоке if
, вы можете использовать фигурные скобки для группировки нескольких операторов следующим образом:
Язык кода: HTML, XML (xml)
Php if (выражение) { оператор1; оператор2; }
В следующем примере используется оператор if
, который выполняет несколько операторов:
Язык кода: HTML, XML (xml)
Php $ can_edit = false; $ is_admin = истина; if ($ is_admin) { echo 'Добро пожаловать, админ!'; $ can_edit = true; }
В этом примере оператор if
отображает сообщение и устанавливает для переменной $ can_edit
значение true
, если переменная $ is_admin
имеет значение true
.
Рекомендуется всегда использовать фигурные скобки с оператором if
, даже если у него есть один оператор, который нужно выполнить следующим образом:
Язык кода: HTML, XML (xml)
Php if (выражение) { утверждение; }
Кроме того, вы можете использовать пробелы между выражением и фигурными скобками, чтобы сделать код более читабельным.
Вложение операторов if
Можно вложить оператор if
в другой оператор if
следующим образом:
Язык кода: HTML, XML (xml)
Php if (выражение1) { if (выражение2) { } }
В следующем примере показано, как вложить оператор if
в другой оператор if
:
Язык кода: HTML, XML (xml)
Php $ is_admin = истина; $ can_approve = true; if ($ is_admin) { echo 'Добро пожаловать, админ!'; if ($ can_approve) { echo 'Пожалуйста, одобрите отложенные элементы'; } }
Вставить оператор
if
в HTML
Чтобы встроить оператор if
в документ HTML, можно использовать приведенный выше синтаксис.Однако PHP обеспечивает лучший синтаксис, который позволяет вам красиво смешивать оператор if с HTML:
Язык кода: HTML, XML (xml)
Php if (expession):?> php endif; ?>
В следующем примере используется оператор if
, который показывает ссылку редактирования, если $ is_admin
имеет значение true
:
Язык кода: HTML, XML (xml)
Демонстрация PHP if php $ is_admin = true; ?> php if ($ is_admin):?> Изменить php endif; ?> Просмотр
Поскольку $ is_admin
равно true
, сценарий показывает ссылку «Изменить».Если вы измените значение $ is_admin
на false
, вы не увидите ссылку «Изменить» в выходных данных.
Распространенная ошибка оператора if в PHP
Распространенная ошибка, которую вы можете иметь, - это использование неправильного оператора в операторе if
. Например:
Язык кода: HTML, XML (xml)
Php $ проверено = 'включено'; if ($ checked = 'off') { echo 'Флажок не отмечен'; }
Этот сценарий показывает сообщение, если $ checke
d имеет значение 'off'
.Однако выражение в инструкции if
является присваиванием, а не сравнением:
Язык кода: PHP (php)
$ checked = 'off'
Это выражение назначает буквальную строку 'off '
в $ проверяет переменную
и возвращает эту переменную. Он не сравнивает значение переменной $ checked со значением 'off'
. Следовательно, выражение всегда оценивается как истинно
, что неверно.
Чтобы избежать этой ошибки, вы можете поместить значение сначала перед оператором сравнения, а переменную после оператора сравнения следующим образом:
Язык кода: HTML, XML (xml)
Php $ проверено = 'включено'; if ('off' == $ проверено) { echo 'Флажок не отмечен'; }
Если вы случайно используете оператор присваивания (=), PHP вместо этого выдаст синтаксическую ошибку:
Язык кода: HTML, XML (xml)
Php $ проверено = 'включено'; if ('off' = $ проверено) { echo 'Флажок не отмечен'; }
Ошибка:
Ошибка синтаксического анализа: синтаксическая ошибка, неожиданный знак '='.