Условный оператор в 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-коде:
Разъяснение:
Смотрите, в условии мы указали, что если переменные $a
с $b
равны ($a == $b)
и переменные $k
с $n
не равны ($k !=
$n)
, условие будет считаться правильным. А если условие правильное, значит, будет работать эта часть кода:
{
echo "Все ОK:)";
}
Введите в браузере адрес:
Результат:
Если значение переменой $a поменять на противоположное значение переменной $b , то условие будет невыполнимо! Почему? Да потому, что переменные ($a == $b) не равны между собой. Если условие не выполнено, будет работать другая часть кода:
else
{
echo "Не все ОК: (";
}
Как это выглядит в 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-коде:
В переменных 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. Например, с помощью условной операции можно легко реализовать модуль числа:
Условные операции бывает выгодно использовать в каких-то коротких выражениях, где нужно изменить значение только одной переменной в зависимости от какого условия.