Условный оператор в php пример. PHP if-else. Условия в PHP. Логические операции в условии

Последнее обновление: 1.11.2015

Условные конструкции позволяют направлять работу программы в зависимости от условия по одному из возможных путей.

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

Конструкция if (условие) проверяет истинность некоторого условия, и если оно окажется истинным, то выполняется блок выражений, стоящих после if. Если же условие ложно, то есть равно false, тогда блок if не выполняется. Например:

0) { $result= $a * $b; echo "результат равен: $result
"; } echo "конец выполнения программы"; ?>

Блок выражений ограничивается фигурными скобками. И так как в данном случае условие истинно (то есть равно true): значение переменной $a больше 0, то блок инструкций в фигурных скобках также будет выполняться. Если бы значение $a было бы меньше 0, то блок if не выполнялся.

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

0) echo $a * $b; echo "
конец выполнения программы"; ?>

Можно в одной строке поместить всю конструкцию:

If($a>0) echo $a * $b;

В данном случае к блоку if относится только инструкция echo $a * $b;

else

Блок else содержит инструкции, которые выполняются, если условие после if ложно, то есть равно false:

0) { echo $a * $b; } else { echo $a / $b; } echo "
конец выполнения программы"; ?>

Если $a больше 0, то выполняется блок if, если нет, то выполняется блок else.

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

If($a>0) echo $a * $b; else echo $a / $b;

elseif

Конструкция elseif вводит дополнительные условия в программу:

$a = 5; $b = 2; if($a<0) { echo $a * $b; } elseif($a==0) { echo $a + $b; } elseif($a==5) { echo $a - $b; } else { echo $a / $b; }

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

Конструкция switch..case

Конструкция switch..case является альтернативой использованию конструкции if..elseif..else . Например:

$a = 1; if($a==1) echo "сложение"; elseif($a==2) echo "вычитание"; elseif($a==3) echo "умножение"; elseif($a==4) echo "деление";

Будет эквивалентно:

$a = 1; switch($a) { case 1: echo "сложение"; break; case 2: echo "вычитание"; break; case 3: echo "умножение"; break; case 4: echo "деление"; break; }

После ключевого слова switch в скобках идет сравниваемое выражение. Значение этого выражения последовательно сравнивается со значениями, помещенными после оператора сase. И если совпадение будет найдено, то будет выполняться определенный блок сase.

В конце блока сase ставится оператор break, чтобы избежать выполнения других блоков.

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

$a = 1; switch($a) { case 1: echo "сложение"; break; case 2: echo "вычитание"; break; default: echo "действие по умолчанию"; break; }

Тернарная операция

Тернарная операция состоит из трех операндов и имеет следующее определение: [первый операнд - условие] ? [второй операнд] : [третий операнд] . В зависимости от условия тернарная операция возвращает второй или третий операнд: если условие равно true , то возвращается второй операнд; если условие равно false , то третий. Например:

$a = 1; $b = 2; $z = $a < $b ? $a + $b: $a - $b; echo $z;

Если значение переменной $a меньше $b и условие истинно, то переменная $z будет равняться $a + $b . Иначе значение $z будет равняться $a - $b

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

Синтаксис конструкции if аналогичен конструкции if в языке Си:

if (логическое выражение) оператор;
?>

Согласно выражениям PHP, конструкция if содержит логическое выражение. Если логическое выражение истинно (true ), то оператор, следующий за конструкцией if будет исполнен, а если логическое выражение ложно (false ), то следующий за if оператор исполнен не будет. Приведем примеры:

if ($a > $b ) echo "значение a больше, чем b" ;
?>

В следующем примере если переменная $a не равна нулю, будет выведена строка "значение a истинно (true)":

if ($a ) echo "значение a истинно (true) " ;
?>

В следующем примере если переменная $a равна нулю, будет выведена строка "значение a ложно (false)":

if (!$a ) echo "значение a ложно (false) " ;
?>

Часто вам будет необходим блок операторов, который будет выполняться при определенном условном критерии, тогда эти операторы необходимо поместить в фигурные скобки {...} Пример:

if ($a > $b ) {
echo "a больше b" ;
$b = $a ;
}
?>

Приведенный пример выведет сообщение, "a больше b", если $a > $b , а затем переменная $a будет приравнена к переменной $b . Заметим, что данные операторы выполняются в if .

if (логическое_выражение):
команды;
elseif(другое_логическое_выражение):
другие_команды;
else:
иначе_команды;
endif

Обратите внимание на расположение двоеточия (: )! Если его пропустить, будет сгенерировано сообщение об ошибке. И еще: как обычно, блоки elseif и else можно опускать.

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

elseif - это комбинация конструкций if и else . Эта конструкция расширяет условную конструкцию if-else .

Приведем синтаксис конструкции elseif :

if (логическое_выражение_1)
оператор_1;
elseif (логическое_выражение_2)
оператор_2;
else
оператор_3;

Практический пример использования конструкции elseif :

if ($a > $b ) {
echo "a больше, чем b" ;
} elseif ($a == $b ) {
echo "a равен b" ;
} else {
echo "a меньше, чем b" ;
}
?>

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

Прежде чем мы приступим к продолжению изучения оператора if-else , убедительно рекомендую посмотреть знаки, которые используются в условиях if . Запомните их или запишите:

Равенство: ==
Пример: if ($a == $b)

Не равенство: !=
Пример: if ($a != $b)

Больше: >
Пример: if ($a > $b)

Меньше: <
Пример: if ($a < $b)

Больше или равно: >=
Пример: if ($a >= $b)

Меньше или равно: <=
Пример: if ($a <= $b)

Логическое «и»: and
Пример: if ($a ==$b and $c !=$d)

Логическое «или»: or , ||
Пример: if ($a ==$b || $c !=$d)

Вот теперь продолжим.

Двойное условие if-else

Где можно его применить? Когда я создавал для одного сайта админ-панель, то использовал двойное условие для проверки логина и пароля.
Чтобы создать двойное условие, нужно добавить еще две переменные, например: $k = 55; $n = 88.
Это будет выглядеть вот так:

if ($a != $b and $k != $n)

and – вы уже знаете, что это означает логическое «и ».

Как это будет выглядеть в PHP-коде:

основы php на сайт

Разъяснение:
Смотрите, в условии мы указали, что если переменные $a с $b равны ($a == $b) и переменные $k с $n не равны ($k != $n) , условие будет считаться правильным. А если условие правильное, значит, будет работать эта часть кода:

{
echo "Все ОK:)";
}

Введите в браузере адрес:

Результат:

Если значение переменой $a поменять на противоположное значение переменной $b , то условие будет невыполнимо! Почему? Да потому, что переменные ($a == $b) не равны между собой. Если условие не выполнено, будет работать другая часть кода:

else
{
echo "Не все ОК: (";
}

Как это выглядит в PHP-коде:

основы php на сайт

Сохраните код PHP как «if-else.php » в папку «test-1 » локального сервера (см. урок 1).

Введите в браузере адрес:

https://localhost/test-1/if-else.php

Результат:

Вложенные конструкции if-else .

Что называют вложенными конструкциями if-else ? Это такие конструкции, которые состоят из нескольких условий.

Теперь рассмотрим вложенные конструкции if-else . Такие конструкции могут состоять из нескольких условий в выполняемых правилах. Для примера добавим еще две переменные $familiya1 и $familiya2 :

$familiya1 =" ivanov ";
$familiya2 =" sidarov ";

Как это выглядит в PHP-коде:

основы php на сайт В переменных familiya1 и familiya2 содержатся разные фамилии."; } else { echo "Не так все плохо, как вам кажется:(
В переменных familiya1 и familiya2 содержатся одинаковые фамилии."; } } else { echo "Не все ОК:("; } ?>

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

If ($a == $b and $k != $n)

Переменная $a равная с переменной $b и переменная $k не равная с $n . Здесь условия были выполнены, а это значит, что будет работать эта часть кода:

if ($familiya1 != $familiya2)
{
echo " Все ОK:)
";
}

Так как переменные $familiya1 и $familiya2 между собой не равны и это правда,

$familiya1="ivanov ";
$familiya2="sidarov ";

то будет работать вот эта часть кода:

{
echo " Все ОK:)
В переменных familiya1 и familiya2 содержатся разные фамилии. ";
}

Смотрим результат! Сохраните код PHP как «if-else.php » в папку «test-1 » локального сервера (см. урок 1).

Введите в браузере адрес:

https://localhost/test-1/if-else.php

Результат:

Если в переменных $familiya1 и $familiya2 сделать значение одинаковыми:

$familiya1="sidarov ";
$familiya2="sidarov ";

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

if ($familiya1 != $familiya2)

Вот по этой причине будет работать вот эта часть кода:

Else
{
echo " Не так все плохо, как вам кажется: (

В переменных familiya1 и familiya2 содержатся одинаковые фамилии. ";
}

В результате на мониторе вы увидите картинку:

Вот мы и закончили полностью тему «Оператор условия if-else для PHP ». Чтобы закрепить «Урок 5» и «Урок 6», рекомендую самостоятельно поработать над созданием собственных условий.

А я пойду готовить для вас новые уроки по основам PHP. Подписывайтесь на обновления блога, если не хотите пропустить уроки по PHP.
Всего хорошего!

Как и в других языках программирования, в PHP существуют операторы выбора. Всего их три вида:

  • условный оператор if...else ;
  • переключатель switch ;
  • условная операция (? );

Стоит отметить, что в PHP отсутствует безусловный переход по метке goto , но несмотря на это, ключевое слово под goto зарезервировано.

В этом уроке мы рассмотрим условный оператор if...else и условные операции, а следующий урок будет посвящен переключателю switch .

Синтаксис if...else такой же, как и в языке С:

//в случае если uslovie истинно, то мы попадаем сюда operator1; //в случае одного оператора, operator2; ... } else // не является обязательным {//в случае если uslovie ложно, то мы попадаем сюда operator3; //в случае одного оператора, operator4; //фигурные скобки необязательны ... } ?>

Примечания:

  • else - не обязательная часть, но чаще всего её применяют, т.к. этого требует логика.
  • Как было отмечено в комментариях к коду, фигурные скобочки {} не обязательны, если у нас только один оператор. Поскольку условие может быть либо истинным (1), либо ложным (0), то будет выполнены либо operator1, operator2 и т.д., либо operator3, operator4 и т.д.

Приведем конкретный пример на PHP:

//Задание значений переменных $num1 = 10; $num2 = 7; if ($num1 > $num2) {//условие истинно, значит попадаем сюда echo "Условие истинно, поскольку 10 > 7
"; $num1+=$num2; // прибавим к $num1 переменную $num2; echo "\$num1 = ". $num1; // результатом будет 17 } else echo "Поскольку условие положительное, то сюда мы не попадаем"; // В else только один оператор, поэтому фигурные скобки отсутствуют ?>

Приведем пример, в котором конструкция else опущена, а условие состоит из двух условий:

6) echo "Условия истинны"; //Другой пример: if ($num1 == 10 || $num2 >= 100) echo "Условия истинны"; //Во всех случаях условия истинны ?>

Вложенные условия if

Как и в языке С, в PHP допускается использование вложенных в друг друга условий:

//если uslovie1 и uslovie2 истинны, то попадаем сюда } else { //если uslovie1 истинно, а uslovie2 ложно, то попадаем сюда } else { //если uslovie1 и uslovie2 ложно, то попадаем сюда } ?>

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

// в результате этого скрипта будет выведено сообщение: // $flag1 - истина, а $flag2 - ложь ?>

Вложенные условия с помощью if...elseif...else

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

В такой конструкции else может быть написан только один раз, а вот elseif сколько угодно. Также считается, что выше описанная конструкция уступает переключателю switch .

Использование оператора endif

Практически в любом движке созданном на PHP используется оператор endif . Конструкция данного оператора приведена ниже:

... html-теги и контент; ... ... html-теги и контент; ...

Стоит обратить внимание на удобство этой конструкции, чем если бы мы выводили весь контент через echo . Не забывайте после условия ставить двоеточие!

Использование условных операций (?)

Применение условных операций не является распространенным подходом не только в языке PHP, но и в других подобных языках, однако о них не стоит забывать. Синтаксис условной операции следующий:

Сначала идет какое-то условие. Если оно истинно, то выполняется оператор_1, иначе оператор_2. Я думаю, что конструкция не является очень понятной, поэтому стоит привести пару разъясняющих примеров на PHP. Например, с помощью условной операции можно легко реализовать модуль числа:

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