• Условный оператор if в PHP. PHP if-else. Условия в PHP Php if else примеры

    Конструкция 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" ;
    }
    ?>


    Главное в действие данное оператора - это условие. 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 <= $b Меньше или равно True, если $a меньше или равно $b
    Теперь рассмотрим операторы на примерах :

    // вопреки привычке = значит присваивание значение переменной, а == как равно
    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 присваивается переданное значение.
    }
    ?>
    Прочитайте комментарии к коду и всё должно быть понятно.

    Спасибо за внимание!


    Как и в других языках программирования, в 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. Например, с помощью условной операции можно легко реализовать модуль числа:

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

    (PHP 4, PHP 5, PHP 7)

    elseif , as its name suggests, is a combination of if and else . Like else , it extends an if statement to execute a different statement in case the original if expression evaluates to FALSE . However, unlike else , it will execute that alternative expression only if the elseif conditional expression evaluates to TRUE . For example, the following code would display a is bigger than b , a equal to b or a is smaller than b :

    if ($a > $b ) {
    echo "a is bigger than b" ;
    } elseif ($a == $b ) {
    echo "a is equal to b" ;
    } else {
    echo "a is smaller than b" ;
    }
    ?>

    There may be several elseif s within the same if statement. The first elseif expression (if any) that evaluates to TRUE would be executed. In PHP, you can also write "else if" (in two words) and the behavior would be identical to the one of "elseif" (in a single word). The syntactic meaning is slightly different (if you"re familiar with C, this is the same behavior) but the bottom line is that both would result in exactly the same behavior.

    The elseif statement is only executed if the preceding if expression and any preceding elseif expressions evaluated to FALSE , and the current elseif expression evaluated to TRUE .

    Note : Note that elseif and else if will only be considered exactly the same when using curly brackets as in the above example. When using a colon to define your if /elseif conditions, you must not separate else if into two words, or PHP will fail with a parse error.

    /* Incorrect Method: */
    if ($a > $b ):
    else if ($a == $b ): // Will not compile.
    echo "The above line causes a parse error." ;
    endif;

    /* Correct Method: */
    if ($a > $b ):
    echo $a . " is greater than " . $b ;
    elseif ($a == $b ): // Note the combination of the words.
    echo $a . " equals " . $b ;
    else:
    echo $a . " is neither greater than or equal to " . $b ;
    endif;

    12.09.2017

    Пока нет


    Всем привет!
    Продолжаем изучать основы PHP с нуля!
    В этом уроке я расскажу вам об операторе условий if else . В буквальном переводе if означаете «если », а else – «иначе ». Сама конструкция if else помогает сверять данные и выводить результат (выводить сообщения, выполнять какую-то команду, перенаправлять пользователя на секретную страницу или впускать в админ-панель). Чтобы научиться писать правильно условия и понять конструкцию if else, я наведу жизненный пример, который очень похож на конструкцию if else.
    Вы даете своему мозгу команду: как только звучит будильник (6:00), я должен встать, умыться, почистить зубы, одеться и галопом бежать на работу. Если будильник не звонит в 6:00, значит можно спать, так как на работу бежать не нужно.
    Вы заметили конструкцию if else? Условием будет установленное время будильника «6:00». Если будильник звонит, то встаем и бежим на работу, если не звонит (иначе, еще говорят ложь), значит, спим дальше.
    Таких примеров жизненных можно навести массу, например: если идет дождь, то сижу дома, если нет дождя, тогда беру мяч и иду играть футбол.
    Итак, как же можно записать конструкцию if else ? Очень просто.
    Пойдем поэтапно и начнем с простого условия – оператор if.

    Для лучшего понимания я изобразил схему конструкции if в виде рисунка:

    Теперь попробуем трансформировать жизненный пример, который я навел выше, в код php.

    Если вы сохраните php файл с этим кодом и откроете его через локальный сервер (см. ), то в результате получится:

    ⇒ Разъяснение кода:
    В условии я сравнил переменную $weather со значением "дождь " (строка №3). Человеческим языком этот код звучит так: если переменная $weather равна значению "дождь ", тогда выводить нужно текст "Я сижу дома ". Кстати, напомню вам (если подзабыли ), что знак равенства обозначается двойным знаком «равно», вот так (== ). Если к переменной $weather написать другое значение (строка №2), например, снег, тогда в браузере будет пустая страничка, так как условия не были соблюдены.

    → КОД-ШАБЛОН "КОНСТРУКЦИЯ 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)

    Теперь попробуем вывести сообщение, если условия не были соблюдены, а именно, если идет дождь, сижу дома, если нет дождя, беру мяч и иду играть футбол. Для лучшего понимания посмотрим рисунок снизу:

    Теперь схему переведем в реальный код:

    Результат:

    Я беру мяч и иду играть в футбол

    ⇒ Разъяснение кода:
    В условии я сравнил переменную $weather со значением "дождь " (строка №3), но так как переменной $weather я присвоил значение "солнце " (строка №2), то условие не было соблюдено (значения не одинаковы), а это значит, что будет работать вторая часть кода (else):

    Else { echo "Я беру мяч и иду играть в футбол"; //результат если условие не верно }

    → КОД-ШАБЛОН "КОНСТРУКЦИЯ if-else":

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

    Переходим к более сложному – двойное условие if-else .
    Давайте на примере создадим проверку пароля и логина.

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

    Приступим.
    Создадим для начала две переменные $logo и $password с соответствующими значениями:

    Обратите внимание, в условии мы разделили две переменные оператором "AND ". Это означает, что две переменные должны быть правильными для выполнения условия, но так как у нас в условии не совпадает пароль (стока№4), значит, условие неверное и на экране вы увидите вот такое сообщение:

    Логин или пароль не верный

    Если поменяете значение переменной $password на "123 " (строка №3), тогда условия будут полностью соблюдены (строка №4):

    Результат:

    добро пожаловать в админ-панель

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

    Вложенная конструкция – это когда внутри конструкции находится еще одна конструкция. Не совсем понятно объяснил? Не беда, на примере все поймете.

    Цель:
    Создать условие проверки логина и пароля. Если пароль или логин не совпадают, вывести сообщение об ошибке, если совпадают, тогда еще проверить секретное слово, если секретное слово не совпадает, вывести сообщение об ошибке, если совпадает, тогда вывести сообщение "добро пожаловать в админ-панель ".

    Приступим:

    Создадим для начала три переменные, $logo , $password и $x с соответствующими значениями:

    Теперь создадим двойное условие для проверки переменных $logo и $password :

    Теперь под комментарием " // тут будет еще одно условие с секретным словом " (строка №7) пропишите еще одну конструкцию if-else с условием проверки переменной $x :

    Так как секретное слово неверное (строка №8), то на экране будет сообщение:

    секретное слово неверное

    Если вы замените значение переменной $x на "BlogGOOD ", тогда и секретное слово будет правдивым:

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

    добро пожаловать в админ-панель

    → КОД-ШАБЛОН "ВЛОЖЕННАЯ КОНСТРУКЦИЯ if-else":

    Оператор условия elseif

    Конструкция elseif - это комбинация конструкций if и else, которая поможет проверить несколько условий подряд.

    Синтаксис:

    Заметьте, в строках №6 и №10 специально два слова написаны вместе «elseif», если вы их разделите пробелом «else if», то код выдаст ошибку.

    Давайте приведу рабочий код с выбором учебника по программированию.

    Результат:

    Вы заказали учебник по PHP

    Способ elseif можно записать так же и вложенной конструкцией if else :

    Результат такой же, вот только запутаться легче (я 2 раза запутался в своем же коде) .

    Дополнение к уроку (пока знать не обязательно):

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

    Переменная "$а" содержит значение 15

    Домашнее задание:
    Попробуйте в условии вместо равенства (== ) поставить неравенство (!= ) или попробовать со знаками больше меньше:

    а также замените оператор "AND " на "OR ".

    Все, жду вас на следующих уроках! Подписывайтесь на обновления блога!

    Предыдущая запись
    Следующая запись