Условные операторы PHP
В сценариях PHP условные операторы обеспечивают основу для принятия решений. Условные операторы по существу управляют тем, будет ли выполняться часть сценария в зависимости от результата конкретного выражения (т.е. возвращает ли выражение логическое значение true
или false
).
PHP-оператор if
Основным строительным блоком условного кодирования в PHP является оператор if
. Первая строка такого блока состоит из оператора if
, за которым следует выражение в круглых скобках ()
. Например:
$myVar = 10;
if ($myVar > 2)
Второй шаг в создании оператора if
включает в себя указание инструкции в фигурных скобках {}
, которая должна быть выполнена, если выражение в круглых скобках ()
оценивается как истинное true
:
$myVar = 10;
if ($myVar > 2) {
echo 'Значение myVar больше 2';
$myVar ++;
}
В приведенном выше примере, если значение переменной $myVar
оценивается как больше 2, то выражение будет оценено как истинное (true)
и инструкция выполняется. Если выражение возвращает ложное значение (false)
, то инструкция не выполняется.
Следует отметить, что если в теле оператора if
выполняется только одна строка сценария, то фигурные скобки необязательны:
if ($myVar > 2)
echo 'Значение myVar больше 2';
Однако, если нужно выполнить в теле оператора if
несколько инструкций, тогда эти несколько сценариев необходимо заключить в фигурные скобки:
Пример
Попробуй сам »<?php
$myVar = 10;
if ($myVar > 2) {
echo 'Значение myVar больше 2<br>';
$myVar ++;
echo "$myVar";
}
?>
Результат выполнения кода:
11
Обратите внимание на то, что после закрывающей фигурной скобки не следует ставить точку с запятой.
Операторы if
могут быть вложенными в другие операторы if
:
Пример
Попробуй сам »<?php
$x = 0;
$y = 50;
$c = 10;
$d = 15;
// Если выражение "c == 10" возвращает true
if($c == 10)
// то выполняется проверка условного выражения вложенного оператора if
if ($d < 20) echo ($x = $y);
?>
Результат выполнения кода:
Обратите внимание на последнюю строку примера: инструкцию не обязательно надо записывать именно под оператором if
, если инструкция не большая по размеру, то ее можно записать и в одну строку.
Примечание: Хотя игнорирование фигурных скобок допускается в PHP, настоятельно рекомендуется использовать фигурные скобки даже для одной строки сценария после оператора if
. Это упрощает чтение кода и позволяет избежать распространенной ошибки, связанной с последующим добавлением новых команд, условных для оператора if
, и забвением добавления фигурных скобок.
Оператор if ... else
Мы уже знаем, что оператор if
позволяет выполнять сенарий в том случае, если условие истинно. Если же условие ложно, то сценарий не выполняется. Однако часто бывает необходимо выполнить одни сценарии, когда определенное условие истинно, и другие сценарии, если условие ложно. Здесь в игру вступает конструкция if ... else
.
Синтаксис if ... else
такой же, как и для оператора if
, за исключением того, что оператор else
может использоваться для указания альтернативного действия:
Пример
Попробуй сам »<?php
$hisName = "Игорь";
if ($hisName == "Вася") {
echo "Привет, Вася!";
}
else {
echo "Ты не Вася! Где Вася?";
}
?>
Результат выполнения кода:
Как показано в приведенном выше примере, сценарий, следующий за оператором if
, выполняется, когда выражение оценивается как истинное (т.е. переменная $hisName содержит строку "Игорь"), а сценарий после оператора else
выполняется, если значение $hisName не соответствует строке "Игорь".
Примечание: Оператор else
не может быть использован отдельно от оператора if
. Оператор else
нужно располагать только после оператора if
, его можно рассматривать, как действие по умолчанию.
Оператор if ... else
может быть вложенным. Оператор if
является вложенным, если он расположен внутри другого блока if
или else
. Если в PHP-коде используется несколько операторов if
, то оператор else
всегда относится к ближайшему if
:
if($x) { // внутренний блок if($x) if($a) инструкция; if($b) инструкция; else инструкция; // этот else относится к if($b) - так как он ближе } else инструкция; // этот else относится к if($x)
Последний оператор else
не относится к if($a)
, так как он не расположен во внутреннем блоке, поэтому ближайшим к нему получается if($x)
. Оператор else
расположенный внутри блока относится к if($b)
, потому что этот if
является ближайшим к нему.
Оператор if ... elseif ... else
Если вам нужно проверить несколько условий подряд, то для этой цели подойдет оператор elseif
или else if
(это одна и та же конструкция, которая по разному записана). Она не является самостоятельной конструкцией PHP — это стиль программирования, заключающийся в применении повторяющихся операторов if/else
.
Синтаксис
if (условие) { код, который будет выполняться, если это условие истинно; } elseif (условие) { код, который будет выполняться, если первое условие ложно, а это условие истинно; } else { код, который будет выполняться, если все условия ложны; }
Пример
Попробуй сам »<?php
$hisName = "Игорь";
if ($hisName == "Вася") {
echo "Привет, Вася!";
}
elseif ($hisName == "Петя") {
echo "Привет, Петя!";
}
else {
echo "Ты не Вася и не Петя!";
}
?>
Результат выполнения кода: