PHP Условные операторы if…else…elseif. Уроки для начинающих. W3Schools на русском

Описание логических выражений и условных операторов (if-else, ?:, switch) языка PHP

Логическое ИЛИ (OR и ||)

Оператор логическое ИЛИ обозначается как OR или ||. Он выполняет операцию «логическое ИЛИ» над двумя операндами. Если один или оба операнда имеют истинное значение, он возвращает true. Если оба операнда имеют ложные значения, он возвращает false. У вас вероятно возник вопрос, зачем же сделали два варианта одного оператора? Смысл двух разных вариантов оператора «логическое ИЛИ» в том, что они работают с различными приоритетами.

Сначала разберем как работает оператор ||. И так, если один или оба его операнда имеют истинное значение, он возвращает true. Если оба операнда возвращают ложные значения, он вернет false.

Оператор OR работает также как и оператор || за одним исключением, если оператор OR используется с присваиванием, то сначала он вычислит и вернет значение левого операнда, в остальном он работает точно также как и оператор ||, т.е. если один или оба его операнда имеют истинное значение, он возвращает true. Если оба операнда возвращают ложные значения, он вернёт false.

Чтобы стало понятнее, как они работают, приведем следующий пример:

<?php // Оператор «||» имеет больший приоритет, чем «or» // Результат выражения (false || true) будет присвоен переменной $var1 // Действие приоритета: $var1 = (false || true) $var1 = false || true; echo $var1; // => 1 // Сначала переменной присваивается значение false, а затем вычисляется второй операнд // Действие приоритета: ($var2 = false) or true $var2 = false or true; echo $var2; // false не выводится // ($var3 = 0) or 3 $var3 = 0 or 3; echo «<br>$var3»; // => 0?>

Любые операторы сравнения и логические можно комбинировать в более сложные конструкции:

<?php $a = (6 == 6) || (4 <= 9); // или так echo (‘c’ != ‘d’) or (‘A’ === ‘A’);?>

Стоит упомянуть еще об одном важном моменте, касательно обоих операторов OR и ||. Оператор «логическое ИЛИ» начинает свои вычисления со своего левого операнда, если он возвращает true, то правый операнд вычисляться не будет. Это позволяет экономить время исполнения, но нужно внимательно следить за тем, чтобы код, от которого может зависеть корректная работа программы, не был помещен в правый операнд.

И &&

A B A && B
TRUE TRUE TRUE
TRUE FALSE FALSE
FALSE TRUE FALSE
FALSE FALSE FALSE

Приоритет операторов

Начнём с того, что операторы имеют разный приоритет. Как, например, в математике: оператор умножения будет более приоритетным по сравнению с оператором сложения:

<?php$result = 2 + 2 * 2;var_dump($result);

Результат:

int 6

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

<?php$result = (2 + 2) * 2;var_dump($result);

Ну и тут думаю всё понятно:

int 8

В целом приоритеты операторов довольно предсказуемы.
Приоритет всех операторов в PHP можно посмотреть в официальной документации.

Все операторы php

  1. Арифметические операторы  в PHP.
  2. Операторы сравнения  в PHP.
  3. Логические операторы  в PHP.
  4. Новые операторы
  5. Какого оператора в php не существует?

Условные операторы

на отдельной странице

  1. Использование or для условного выполнения.

    Часто в коде можно встретить примеры использования or без всяких if.

    mysql_connect(…) or die(‘DB error’);

    Такая конструкция также основана на приоритете вычислений — в случае, если первый аргумент (до конструкции `or`) имеет истинное значение, второй не вычисляется.

    Метки: php

    Опубликовано Четверг, Апрель 18, 2013 в 08:08 в следующих категориях: Без рубрики. Вы можете подписаться на комментарии к этому сообщению через RSS 2.0. Вы можете оставить комментарий. Пинг отключен.

    Автор будет признателен, если Вы поделитесь ссылкой на статью, которая Вам помогла:
    BB-код (для вставки на форум)

    html-код (для вставки в ЖЖ, WP, blogger и на страницы сайта)

    ссылка (для отправки по почте)

    Принцип выполнения арифметический операторов

    Арифметические операторы подчиняются математическим законам!

    Если написано, что d = a + b * c, то вначале произойдёт умножение, а потом уже сложение.

    Если сталкиваются несколько выражений с плюсом и минусом, то ставятся простые скобки ().

    О знаке «равно»

    Внимательный читатель должен был увидеть, что нет знака равно «=».

    Но тем, кто и не вглядывался — сообщаю!

    — Действительно знака равно «=» нет.

    Почему? Потому, что данный знак не является арифметическим оператором — это один из операторов присваивания

  2. Примеры использования

    Условия с логическими операторами

    Здесь сравниваются сразу две переменных. В результате, верным окажется условие №2.

    <?
    $abc = 5+11;
    $xyz = 21;
    if($abc == 16 and $xyz == 10) {
    echo»Верно условие №1″;
    } elseif($abc == 16 and $xyz == 21) {
    echo»Верно условие №2″;
    } else {
    echo»Все условия являются ложными!»;
    }
    ?>

    Условия с разными операторами сравнения

    <?
    $abc = 1000;
    $xyz = 10000;

    if($xyz < 123) {
    echo»Значение переменной <b>xyz</b> меньше, чем <b>123</b>.»;
    } elseif($xyz <= 1000 and $abc == 999) {
    echo»Значение переменной <b>xyz</b> меньше или равно <b>1000</b>, а значение переменной <b>abc</b> равно <b>999</b>.»;
    } elseif($xyz == 10000 and $abc == 1000) {
    echo»Значение переменной <b>xyz</b> равно <b>10000</b>, а значение переменной <b>abc</b> равно <b>1000</b>.»;
    }
    ?>

    Итог: выполнение третьего условия.

    Тернарный оператор

    Условие без тернарного оператора выглядит следующим образом:

    <?
    if ($abc < $xyz) {
    $www = $abc;
    } else {
    $www = $xyz;
    }
    ?>

    Его можно сократить до:

    <?$www = ($abc < $xyz) ? $abc : $xyz;?>

    Задание

    Джон поручил Сэму реализовать автоматическое распознавание солдат Ланнистеров на видео. Идея автоматизировать дозор крепости казалась ему привлекательной. В процессе работы Сэму понадобилось написать функцию, которая определяет, Ланнистер ли перед ним или нет. Немного подумав, Сэм выделил следующие правила определения Ланнистера:

    Если у солдата доспехи красного цвета И нет щита

    ИЛИ

    если у солдата есть щит с изображением льва

    то это Ланнистер.

    Ланнистер или нет

    Напишите функцию isLannisterSoldier(), которая принимает на вход два аргумента:

    1. Цвет доспехов (строка). Если доспехи красные, то строка red.
    2. null, если щита нет. Строка lion, если щит есть, и на нём изображен лев.

    Функция возвращает true, если распознан Ланнистер, и false, если не распознан.

    Примеры вызова:

    <?phpisLannisterSoldier(‘red’, ‘man’); // falseisLannisterSoldier(‘blue’, ‘lion’); // true

    Что вам делать дальше:

    Приступайте к решению задач по следующей ссылке: задачи к уроку.

    Когда все решите — переходите к изучению новой темы.

    Операторы сравнения  в PHP.

    Операторы сравнения относятся к логическим операторам, и применяются для сравнения переменных. Массивы и объекты с их помощью сравнивать нельзя.

  3. Советы

    • Булева алгебра

    • Конъюнкция

    • Дизъюнкция

    Логическое НЕ (!)

    Оператор логическое НЕ, его также называют отрицание обозначается знаком !. Он является унарным оператором, помещаемым перед одиночным операндом. Оператор «логическое НЕ» используется для инверсии логического значения своего операнда и всегда возвращает true или false.

    Если потребуется инвертировать значение выражения, например a && b, необходимо будет использовать круглые скобки: !(a && b). Также с помощью оператора ! можно преобразовать любое значение x в его логический эквивалент, дважды применив оператор: !!x.

    <?php $a1 = 10; var_dump((11 == 11)); // true // оператора ! инвертирует значение var_dump(!(11 == 11)); // false // преобразует в логическое значение var_dump(!!$a1); // true?>

    Определения

    • Логические операторы — операторы «И» (&&), ИЛИ (||), позволяющие создавать составные логические условия.

    Нашли ошибку? Есть что добавить? Пулреквесты приветствуются

    https://github.com/hexlet-basics

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: