- Оператор IF ELSE в PHP
- Конструкция IF ELSE
- Несколько условий с ELSEIF
- Альтернативный синтаксис IF ELSE ENDIF
- Урок 5. Условный оператор if, логические операции и сравнение в PHP
- Операторы сравнения в PHP
- Логические операторы PHP
- Тернарный оператор
- Двойное условие и вложенные конструкции if-else на PHP. Урок 7
- Двойное условие if-else
- Вложенные конструкции if-else .
Оператор IF ELSE в PHP
Оператор IF позволяет выполнить кусок кода только при выполнении каких-либо условий.
Например, мы можем уведомить пользователя, что дорогие товары доставляются бесплатно:
500 if($price > 500) echo 'Бесплатная доставка!
'; // А этот код выполнится в любом случае echo 'Спасибо за заказ!'; ?>
В примере выше IF выполняет следующую за ним команду, если выражение в круглых скобках принимает значение true.
Для выполнения нескольких команд нужно поместить их в фигурные скобки:
100 if($price > 100) < $price -= 10; echo 'Ваша скидка 10р'; >// А этот код выполнится в любом случае echo 'Спасибо за заказ!'; ?>
Конструкция IF ELSE
Условие может быть выполнено или не выполнено. Иногда возникает необходимость выполнить разный код для этих ситуаций. Для этого в PHP есть конструкция else :
50) echo 'Условие верно.
'; else echo 'Условие неверно.
'; // Для нескольких команд if(200 > 100) < echo 'Условие '; echo 'верно.'; >else < echo 'Условие '; echo 'неверно.'; >?>
Существуют разные стандарты оформления PHP-кода. Если показанный выше кажется вам слишком громоздким, можете писать более компактно:
Несколько условий с ELSEIF
С помощью конструкции elseif мы можем добавлять неограниченное количество условий. Выполнено будет только первое из подходящих условий, остальные будут проигнорированы.
Разработаем систему, которая сама рассчитывает наценку на товар в зависимости от его цены:
В примере выше выполнилось только третье условие. Первые два не соответствовали правилам, а последнее пропущено, поскольку уже выполнилось предыдущее.
Альтернативный синтаксис IF ELSE ENDIF
Нередко возникают ситуации, когда использование фигурных скобок делает код более запутанным. В этом случае удобно использовать альтернативный синтаксис:
Используется такой синтаксис чаще всего в html-шаблонах, чтобы избавиться от фигурных скобок. Для сравнения, тот же кусок кода в обычном синтаксисе:
Выглядит уже менее приятно, а при наличии других операторов с фигурными скобками будет совсем беда. Поэтому при формировании HTML-страниц не забывайте про альтернативный синтаксис.
Урок 5. Условный оператор if, логические операции и сравнение в PHP
Главное в действие данное оператора — это условие. if в переводе с английского значит если. Условие принимается в качестве аргумента (то что в скобках). В качестве условия может выступать логическое выражение или логическая переменная. Если проще, то смысл выражения будет такой:
if (условие) условие выполнено, делаем так
>
else
условие не выполнено, делаем иначе
>
Надеюсь логика условной операции понятна. Теперь давайте рассмотрим пример.
$a = 5;
$b = 25;
// Теперь внимание! Условие: Если $b больше $a
// Знаки > и < , как и в математике, обозначают больше и меньше
if($b > $a)
// если условие выполнено, то выполняем это действие
echo "$b больше $a";
>
else
// если не выполнено, то это
echo "$a больше или равно $b";
>
?>
Демонстрация Скачать исходники
В итоге скрипт выведет 25 больше 5. Пример довольно прост. Надеюсь всё понятно. Теперь предлагаю рассмотреть ситуацию сложнее, где нужно соблюсти несколько условий. Каждое новое условие будет содержать после основного условия if() — вспомогательное, которое записывается как else if(). В конце как обычно будет else.
Задача: В школе проводят тестирование. Скрипту нужно высчитать балл, зная условия получения каждой оценки и сам балл школьника. Давайте посмотрим как это записать, и не забудьте прочитать комментарий.
$test = 82; // допустим школьник написал тест на 82 балла
// первое условие напишем для пятёрки
if($test > 90)
// если условие соблюдено, то выполняем это действие.
echo "Оценка 5";
>
// Знак && обозначает "и, объединение", что условие соблюдено если и то, и то верно
// то есть балл меньше 91 и больше 80, тогда 4. Иначе условия считываются дальше
else if ($test < 91 && $test >80)
echo "Оценка 4";
>
else if ($test < 81 && $test >70)
echo "Оценка 3";
>
else
echo "Надо бы ещё раз написать тест. ";
>
?>
Демонстрация Скачать исходники
Наш школьник, который успевает и отдохнуть, и написать нормально тест получает оценку 4! А принцип работы надеюсь понятен.
Возможна и короткая запись работы условной операции, когда Вам нужно действие только в случае соблюдения условия.
$age = 19; // переменная с возрастом
if ($age > 17) echo "Всё! Мне можно делать всё что угодно! Мне уже $age!";
>
Вполне себе милый пример короткой записи условной операции. else писать не обязательно.
Дальше встаёт другой вопрос: а есть же, наверное, какие-либо другие операторы сравнения?
Операторы сравнения в PHP
Принцип работы условной операции понятен. Но, как Вы понимаете, способов сравнить намного больше. Давайте посмотрим ниже на таблицу с операторами сравнения.
Пример Название Результат
$a == $b Равно True, если $a равно $b
$a === $b Идентично True, если $a равно $b и обе переменных принадлежат одному типу
$a != $b Не равно True, если $a не равно $b
$a === $b Не идентично True, если $a не равно $b и оба их типа не совпадают
$a > $b Больше чем True, если $a больше, чем $b
$a < $b Меньше чем True, если $a меньше, чем $b
$a >= $b Больше или равно True, если $a больше или равно $b
$aТеперь рассмотрим операторы на примерах:
$a = 5;
// вопреки привычке = значит присваивание значение переменной, а == как равно
if ($a == 5) echo "$a равно 5"; // выведет "5 равно 5"
> else echo "$a не равно 5";
>
if ($a != 6) echo "$a не равно 6"; // выведет "5 не равно 6". Нужно в случае отрицания
> else echo "$a каким-то образом равно 6";
>
// с больше и меньше думаю всё понятно. Поэтому пример сложнее
if ($a <= 6)echo "$a меньше или равно 6"; // выведет "5 меньше или равно 6"
> else echo "$a больше 6";
>Логические операторы PHP
Бывают случаи, когда нужно сравнить не одну переменную, а сразу две и более в одном условии. Для этого существуют логические операторы.
Пример Название Результат
$a and $b Логическое 'и' TRUE если и $a, и $b TRUE.
$a or $b Логическое 'или' TRUE если или $a, или $b TRUE.
$a xor $b Исключающее 'или' TRUE если $a, или $b TRUE, но не оба.
! $a Отрицание TRUE если $a не TRUE.
$a && $b Логическое 'и' TRUE если и $a, и $b TRUE.
$a || $b Логическое 'или' TRUE если или $a, или $b TRUE.Уже обратили внимание, что для операций и и или есть дополнительные операторы? Так сделано для того, чтобы расставить приоритеты в сложных операциях сравнения. В таблице логические операторы приведены в порядке приоритета: от меньшего к большему, то есть, например, || имеет больший приоритет, чем or.
Переходим к примерам
$a = 5;
$b = 6;
$c = 7;
// условие: Если 5 не равно 6 (ВЕРНО) И 6 не равно 7 (ВЕРНО)
if ($a < 6 && $b != $c)echo "Действительно так!"; // выведет "Действительно так!" т.к. ОБА условия ВЕРНЫ
> else echo "Одно из условий не верно";
>
// условие: Если 6 не равно 6 (НЕВЕРНО) ИЛИ 6 не равно 7 (ВЕРНО)
if ($b != 6 || $b != $c) echo "Всё так!"; // выведет "Всё так!", т.к. хотя бы ОДНО из условий ВЕРНО
> else echo "Оба условия не верны";
>Тернарный оператор
К вопросу тернарного кода я предлагаю Вам вернуться позже. Вовсе не упомянуть его я не мог, так как это важная конструкция, которая существенно сокращает размер кода. Предлагаю сразу рассмотреть код.
Суть кода: (условие) ? значение a если true : значение a если false
Таким образом, мы сокращаем запись оператора if. Однако, данная операция действительна только с присваиванием значений переменной. Теперь давайте рассмотрим готовый пример.
// Пример использования тернарного оператора
$settings = (empty($_POST['settings'])) ? 'По умолчанию' : $_POST['settings'];
// Приведенный выше код аналогичен следующему блоку с использованием if/else
if (empty($_POST['settings'])) $settings = 'По умолчанию'; // Если ничего не передано, то оставляем "По умолчанию"
> else $settings = $_POST['settings']; // Если передано, то $settings присваивается переданное значение.
>
?>Прочитайте комментарии к коду и всё должно быть понятно.
Двойное условие и вложенные конструкции if-else на PHP. Урок 7
Этот урок немножко посложней, чем предыдущий, но не стоит бояться, вы должны перейти на уровень выше в познании PHP. В этой статье речь пойдет о конструкции, которая состоит из нескольких условий. Продолжаем изучать оператора условий if-else для PHP.
Прежде чем мы приступим к продолжению изучения оператора if-else , убедительно рекомендую посмотреть знаки, которые используются в условиях if . Запомните их или запишите:
Равенство: ==
Пример: if ($a == $b)Не равенство: !=
Пример: if ($a != $b)Больше или равно: >=
Пример: if ($a >= $b)Меньше или равно: Пример: if ($a
Логическое «и»: and
Пример: if ($a ==$b and $c !=$d)Логическое «или»: or , ||
Пример: if ($a ==$b || $c !=$d)Двойное условие if-else
Где можно его применить? Когда я создавал для одного сайта админ-панель, то использовал двойное условие для проверки логина и пароля.
Чтобы создать двойное условие, нужно добавить еще две переменные, например: $k = 55; $n = 88.
Это будет выглядеть вот так:and – вы уже знаете, что это означает логическое « и ».
Как это будет выглядеть в PHP-коде:
else < echo "Не все ОК :("; >?>Разъяснение:
Смотрите, в условии мы указали, что если переменные $a с $b равны ($a == $b) и переменные $k с $n не равны ($k != $n) , условие будет считаться правильным. А если условие правильное, значит, будет работать эта часть кода:Сохраните код PHP как « if-else.php » в папку « test-1 » локального сервера (см. урок 1).
Если значение переменой $a поменять на противоположное значение переменной $b , то условие будет невыполнимо! Почему? Да потому, что переменные ($a == $b) не равны между собой. Если условие не выполнено, будет работать другая часть кода:
Как это выглядит в PHP-коде:
else < echo "Не все ОК :("; >?>Сохраните код PHP как « if-else.php » в папку « test-1 » локального сервера (см. урок 1).
Вложенные конструкции if-else .
Что называют вложенными конструкциями if-else ? Это такие конструкции, которые состоят из нескольких условий.
Теперь рассмотрим вложенные конструкции if-else . Такие конструкции могут состоять из нескольких условий в выполняемых правилах. Для примера добавим еще две переменные $familiya 1 и $familiya 2 :
$familiya 1 color: #008000;">ivanov ";
$familiya 2 color: #008000;">sidarov ";Как это выглядит в PHP-коде:
В переменных familiya1 и familiya2 содержатся разные фамилии."; > else < echo "Не так все плохо, как вам кажется :(
В переменных familiya1 и familiya2 содержатся одинаковые фамилии."; > > else < echo "Не все ОК :("; >?>Разъяснение:
Смотрите, здесь были выполнены все условияПеременная $a равная с переменной $b и переменная $k не равная с $n . Здесь условия были выполнены, а это значит, что будет работать эта часть кода:
if ($familiya1 != $familiya2)
<
echo " Все ОK : )В переменных familiya1 и familiya2 содержатся разные фамилии. ";
>Так как переменные $familiya 1 и $familiya 2 между собой не равны и это правда,
$familiya1 color: #0000ff;">ivanov ";
$familiya2 color: #0000ff;">sidarov ";то будет работать вот эта часть кода:
<
echo " Все ОK : )В переменных familiya1 и familiya2 содержатся разные фамилии. ";
>Смотрим результат! Сохраните код PHP как « if-else.php » в папку « test-1 » локального сервера (см. урок 1).
Если в переменных $familiya1 и $familiya2 сделать значение одинаковыми:
$familiya1 color: #0000ff;">sidarov ";
$familiya2 color: #0000ff;">sidarov ";тогда, увы, здесь условия выполненными не будут, так как в условии стоит, что переменные должны быть не равными:
Вот по этой причине будет работать вот эта часть кода:
else
<
echo " Не так все плохо, как вам кажется : (В переменных familiya1 и familiya2 содержатся одинаковые фамилии. ";
>В результате на мониторе вы увидите картинку:
Вот мы и закончили полностью тему «Оператор условия if-else для PHP». Чтобы закрепить «Урок 5» и «Урок 6», рекомендую самостоятельно поработать над созданием собственных условий.
А я пойду готовить для вас новые уроки по основам PHP. Подписывайтесь на обновления блога, если не хотите пропустить уроки по PHP.
Всего хорошего!