Операторы PHP: If, Else и If-Else | by Roman | NOP::Nuances of Programming

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

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

В PHP используются следующие условные операторы:

  • if: выполнить определенный код, если некоторое условие истинно;
  • else: если определенное условие(я) не истинно(ы), выполнить этот код;
  • if else: если вышеуказанное условие(я) не истинно(ы), выполнить этот код;
  • switch: в зависимости от значения переменной выполнить какой-то конкретный код.

Оператор if используется для принятия решений.

Синтаксис
if(condition)
{
//Код для выполнения (если условие истинно)
}

В приведенном выше примере внутри скобки находится условие, которое нужно проверить на истинность; если условие истинно, следует выполнить код внутри этих скобок {}.

Пример

Допустим, мы хотим написать оператор if, чтобы убедиться, что $a не равно 0.

<?php
$a = 0;
if($a==0)
{
echo "the variable cannot be zero";
}
?>

Результат(Переменная не может быть равна нулю)

Обратите внимание на то, используете ли вы оператор == корректно. Помните: если вы хотите проверить, равно ли что-то чему-то, вы должны использовать знак ==; одинарный знак равенства = означает в PHP присвоение.

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

Выше мы разобрали случай, когда нам надо было выполнить определенный код при истинности некоторого условия. А что если требуется выполнение кода, когда условие не является истинным?

В этом случае нужно использовать оператор else.

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

Например:

<?php
if()
{}
else
{}
?>

Приведенный выше код проверит, равно ли $a 0. Если равно, то он покажет сообщение your variable cannot be equal to zero “ваша переменная не может быть равна нулю”. Если нет, то будет выведено сообщение good job.

Итак, мы узнали назначение и способ действия операторов if и else.

Однако у нас есть проблема: если вы используете только оператор if else, перед вами всего лишь два варианта развития событий:

  • либо вы выполняете условие, и тогда происходит что-то одно;
  • либо вы не выполняете условие, и происходит что-то другое.

А если мы хотим проверить более одного условия?

Допустим, нам нужно проверить значение A. Если $a равно 0, выполняется блок кода A. Если $a находится в диапазоне от 1 до 20, выполняется блок кода B. Если $a больше 20, выполняется блок кода C. А если $a не равно ни одному из вышеперечисленных условий, выполняется блок кода D.

Пример
<?php
$a=0;
if($a==0)
{
echo "good";
}
else if ($a >=1 && $a<=20)
{
echo "great";
}
else if($a>20)
{
echo "excellent";
}
else
{
echo "no good";
}
?>

Результат

Следует отметить один маленький момент: нет никакой разницы между написанием else if или elseif: и то, и другое означает абсолютно одно и то же.

Почему же иногда нужно использовать else if, а не просто if?

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

Если вы используете else if, то при совпадении одного из условий не проверяются другие условия и работа оператора прекращается.

Пример:

<?php
$a=22;
if($a==22)
{
echo "the variable is equal to 22";
echo "<br>"
}
else if($a%2==0)
{
echo "the variable is an even number";
}
else
{
echo "the variable is neither equal to 22 or an event number";
}
?>

В приведенном выше примере мы установили $a равным 22. Но 22 — это четное число, поэтому оно также соответствует второму условию. Однако программа не будет продолжать проверку дополнительных условий в цикле.

Другое дело, если бы мы написали код следующим образом:

<?php
$a=22;
if($a==22)
{
echo "the variable is equal to 22";
echo "<br>"
}
if($a%2==0)
{
echo "the variable is an even number";
}
else
{
echo "the variable is neither equal to 22 or an event number";
}
?>

Здесь два дополнительных оператора if означают, что будет проверено второе условие — является ли $a четным или нет. Следовательно, второй блок кода будет выполнен, в отличие от первого примера.

Читайте также:

  • Как находить уязвимости в коде на PHP?
  • Java убьет ваш стартап. PHP спасёт его
  • Как подключить базу данных MySQL к сайту на PHP

Читайте нас в Telegram, VK и Яндекс.Дзен

Перевод статьи Eric Tam: PHP If, Else and If-Else Statements

Условные операторы if, esle, elseif. Альтернативный синтаксис if/endif

Конструкция if

Оператор else

Оператор elseif/else if

Альтернативный синтаксис

(php.net)

Конструкция if является одной из наиболее важных в PHP. Простейшей формой конструкции if является следующее выражение:

if (expression){
instruction;
}

Если условие (expression) выполняется (TRUE), тогда выполняется блок инструкций (instruction) В противном случае (FALSE) блок инструкций не выполняется. Инструкции if могут быть бесконечно вложены в другие инструкции if.

Пример:


<?php
$light = 'green'; // цвет - зеленый
if ( $light == 'green'){ // равно-ли то, что лежит в переменной $light,тому,
// что лежит в правой части. (==) - оператор сравнения.
echo 'We may go'; // если равно, то мы можем идти.

echo '<br>';

// выведет: ‘We may go’ (Мы можем идти)
}
?>

Если инструкция одна, то можно записать без операторных (фигурных) скобок:

пример:


if (5 != 3) echo 'OK';


(php.net)

Оператор else (иначе) выполняется в том случае, когда условие не выполняется.

Пример:


<?php
$light = 'red';// цвет - красный
if ($light == 'green'){ // ложь (FALSE)
echo 'We may go';
}else{
echo 'We must stop'; // выполняется блок else
}
echo '<br>';

// выведет: ‘We must stop’ (Мы должны остановиться)
?>

(php. net)

Оператор elseif (иначе если) выполняется тогда, когда условие if() — FALSE, то есть не выполняется, а условие elseif() — TRUE , то есть выполняется. Если все условия не выполняются ( FALSE ), то сработает блок else (иначе). Рекомендуется использовать вариант — elseif (слитный). Может быть несколько elseif в одном выражении if .

Пример:


<?php
$light = 'yellow';// цвет - желтый
if ($light == 'green'){ // ложь (FALSE)

echo 'We may go';
} elseif ($light == 'yellow'){ // TRUE
echo 'We may ready'; // выполняется блок elseif (Мы можем приготовиться)
}else{
echo 'We must stop';
}
echo '<br>';

// выведет: ‘We may ready’ (Мы можем приготовиться)
?>

(php.net)

PHP предлагает альтернативный синтаксис для некоторых его управляющих структур, а именно: if, while, for, foreach и switch.

В каждом случае основной формой альтернативного синтаксиса является изменение открывающей фигурной скобки на двоеточие (:), а закрывающей скобки на endif;, endwhile;, endfor;, endforeach; или endswitch; соответственно.

Пример альтернативного синтаксиса:

<?php $a = 5; if ($a == 5) : ?>
A равно 5
<?php endif ; ?>

— блок HTML будет показан только если переменная $a равна 5.

Альтернативный синтаксис также применяется и к else и elseif.

Структура if с elseif и else в альтернативном формате:


<?php
$a = 7;
if ($a == 5):
echo "a равно 5";
echo "...";
elseif ($a == 6):
echo "a равно 6";
echo "!!!";
else :
echo "a не равно ни 5 ни 6";
endif ;

// выведет: ‘a не равно ни 5 ни 6’
?>

Смешивание синтаксиса в одном и том же блоке управления не поддерживается.

<<< Предыдущий Следующий >>>

НаверхНаверх

Основное руководство по оператору PHP if с рекомендациями

Резюме : в этом руководстве вы узнаете об операторе PHP if и о том, как его использовать для условного выполнения блока кода.

Введение в оператор PHP if

Оператор if позволяет выполнять оператор, если выражение оценивается как true . Ниже показан синтаксис оператора if :

  Язык кода: HTML, XML (xml)  

В этом синтаксисе PHP сначала оценивает выражение . Если выражение оценивается как true , PHP выполняет оператор . Если выражение оценивается как false , PHP игнорирует оператор .

На следующей блок-схеме показано, как работает оператор if :

В следующем примере оператор

if используется для отображения сообщения, если $is_admin переменная устанавливает значение true :

  Язык кода: HTML, XML (xml)  

Поскольку $is_admin равно true , скрипт выводит следующее сообщение:

 Добро пожаловать, админ! 

Фигурные скобки

Если вы хотите выполнить несколько инструкций в блоке if , вы можете использовать фигурные скобки для группировки нескольких инструкций следующим образом:

 
Язык кода: HTML, XML (xml)

В следующем примере используется оператор if , который выполняет несколько операторов:

  Язык кода: HTML, XML (xml)  

В этом примере оператор if отображает сообщение и устанавливает Переменная $can_edit на true , если переменная $is_admin равна true .

Хорошей практикой является всегда использовать фигурные скобки с оператором if , даже если он должен выполнить один оператор, например:

  Язык кода: HTML, XML (xml)  

Кроме того, вы можете использовать пробелы между выражением и фигурными скобками, чтобы сделать код более читабельным.

Вложенные операторы if

Оператор if можно вложить в другой оператор if следующим образом:

  Язык кода: HTML, XML (xml) 

В следующем примере показано, как вложить оператор if в другой оператор if :

  Язык кода: HTML, XML (xml)  

Внедрить оператор

if в HTML

Чтобы встроить оператор if в HTML-документ, можно использовать описанный выше синтаксис. Тем не менее, PHP предоставляет лучший синтаксис, который позволяет красиво сочетать оператор if с HTML:

 

  Язык кода: HTML, XML (xml)  

В следующем примере используется оператор if , который показывает ссылку редактирования, если $is_admin равно true :

 

<голова>
  <мета-кодировка="UTF-8">
  Демонстрация оператора PHP if

<тело>
  
  
  Изменить
  
  Просмотр

  Язык кода: HTML, XML (xml)  

Начиная с $is_admin равно true

, скрипт показывает ссылку «Редактировать». Если вы измените значение $is_admin на false , вы не увидите ссылку «Изменить» в выходных данных.

Распространенная ошибка PHP-оператора if

Распространенная ошибка, которая может возникнуть у вас, заключается в использовании неправильного оператора в операторе if . Например:

  Язык кода: HTML, XML (xml)  

Этот скрипт выводит сообщение, если $checke d равно 'off'

. Однако выражение в операторе if является присваиванием, а не сравнением:

 $checked = 'off'  Язык кода: PHP (php)  

Это выражение присваивает буквальную строку 'off' Переменная $checked и возвращает эту переменную. Он не сравнивает значение переменной $checked со значением 'off' . Следовательно, выражение всегда оценивается как верно , что неверно.

Чтобы избежать этой ошибки, вы можете поместить значение сначала перед оператором сравнения, а переменную после оператора сравнения, например:

  Язык кода: HTML, XML (xml)  

Если вы случайно используете оператор присваивания (=), вместо этого PHP вызовет синтаксическую ошибку:

  Язык кода: HTML, XML (xml)  

Ошибка:

 Ошибка синтаксического анализа: синтаксическая ошибка, неожиданное '=' . ..  Язык кода: JavaScript (javascript)  

Сводка

  • Оператор if выполняет оператор , если условие оценивается как true .
  • Всегда используйте фигурные скобки, даже если в инструкции if нужно выполнить одну инструкцию. Это делает код более очевидным.
  • Используйте шаблон if (value == $variable_name) {} во избежание возможных ошибок.

Этот урок был вам полезен?

оператор if — эхо php, если выполняются два условия

Задавать вопрос

спросил

Изменено 11 лет, 11 месяцев назад

Просмотрено 85 тысяч раз

Реальный код выглядит так:

 if (file_exists($filename)) {echo $player;
} еще {
эхо 'что-то';
 

, но он отображает проигрыватель, даже если идентификатор не вызывается из URL-адреса

мне нужно что-то вроде этого:

 проверьте, существует ли $filename и $id, он не пуст, затем эхо $player
если еще повторить что-то еще
 

я проверяю, не пуст ли $id с помощью

 if(пусто($id)) эхо "текст";
 

, но я не знаю, как их объединить

Кто-нибудь может мне помочь?

Спасибо за все ваши примеры кода, но у меня все еще есть проблема:

Как проверить, не пуст ли $id , а затем повторить остальную часть кода -существует

4

 если (!пусто($id) && file_exists($filename))
 

3

Просто используйте оператор AND или && для проверки двух условий:

 if (file_exists($filename) AND ! empty($id)): // делаем что-то
 

Это фундаментальный PHP.