Php if…else…elseif операторы
Содержание:
- Логическое И (AND и &&)
- Логическое ИЛИ (OR и ||)
- Таблица операторов
- Тернарный оператор (?:)
- План курса
- Выражения
- Логины и пароли ютуб : как поставить или поменять их в 2 клика
- Оператор присваивания и слияние переменных
- Конструкции выбора
- Проходим через различные управляющие структуры
- Оператор Switch PHP
- Условные операторы
- Операторы «кораблей»
- Количество операндов
- Логические операции
- Тернарный оператор ?:
- Флешки для iPhone
- Инструкция if
- Типы операндов
- Логическое НЕ (!)
- Ответы на вопросы читателей
Логическое И (AND и &&)
Оператор логическое И обозначается как или . Он выполняет операцию «логическое И» над двумя операндами. Он возвращает тогда и только тогда, когда оба операнда имеют значение . Если один или оба операнда возвращают значение , оператор возвращает . Смысл двух разных вариантов записи оператора «логическое И» такой же как и у двух предыдущих операторов, а именно в том, что они работают с различными приоритетами.
Сначала разберем как работает оператор . И так, если оба его операнда имеют истинное значение, он возвращает . Если хотя бы один или оба его операнда возвращают значение , он тоже вернет .
Оператор работает также как и оператор за одним исключением, если оператор используется с присваиванием, то сначала он вычислит и вернёт значение левого операнда, в остальном он работает точно также как и оператор . Если хотя бы один из его операндов возвращает значение , он тоже вернет , также если оба операнда возвращают ложные значения, он возвращает .
Для понимания рассмотрим теперь, как это работает на практике:
<?php // Оператор "&&" имеет больший приоритет, чем "and" // Результат выражения (true && false) будет присвоен переменной $bar1 // Действие приоритета: $bar1 = (true && false) $bar1 = true && false; // Сначала переменной присваивается значение true, а затем вычисляется второй операнд // Действие приоритета: ($bar2 = true) and false $bar2 = true and false; var_dump($bar1, $bar2); // ($bar3 = 9) and 3 $bar3 = 9 and 3; echo "<br>$bar3"; // => 9 ?>
Логическое ИЛИ (OR и ||)
Оператор логическое ИЛИ обозначается как или . Он выполняет операцию «логическое ИЛИ» над двумя операндами. Если один или оба операнда имеют истинное значение, он возвращает . Если оба операнда имеют ложные значения, он возвращает . У вас вероятно возник вопрос, зачем же сделали два варианта одного оператора? Смысл двух разных вариантов оператора «логическое ИЛИ» в том, что они работают с различными приоритетами.
Сначала разберем как работает оператор . И так, если один или оба его операнда имеют истинное значение, он возвращает . Если оба операнда возвращают ложные значения, он вернет .
Оператор работает также как и оператор за одним исключением, если оператор используется с присваиванием, то сначала он вычислит и вернет значение левого операнда, в остальном он работает точно также как и оператор , т.е. если один или оба его операнда имеют истинное значение, он возвращает . Если оба операнда возвращают ложные значения, он вернёт .
Чтобы стало понятнее, как они работают, приведем следующий пример:
<?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'); ?>
Стоит упомянуть еще об одном важном моменте, касательно обоих операторов и. Оператор «логическое ИЛИ» начинает свои вычисления со своего левого операнда, если он возвращает , то правый операнд вычисляться не будет
Это позволяет экономить время исполнения, но нужно внимательно следить за тем, чтобы код, от которого может зависеть корректная работа программы, не был помещен в правый операнд.
Таблица операторов
В PHP есть несколько уровней приоритетов, в таблице приведен перечень операторов, отсортированных по уровню приоритета, от высшего к низшему. Операторы на одном уровне имеют одинаковый приоритет.
В колонке «Ассоциативность» помечены операторы, которые имеют правую ассоциативность, остальные относятся к левой.
Оператор | Описание | Ассоциативность |
---|---|---|
NEW | Создает новый объект | Справа налево |
.[]() | Доступ к свойству (точечная нотация)Индекс массиваВызов функции | |
!~++, —+, -(int)(float/double/real)(string)(array)(object)@ | Логическое НЕБитовое НЕОператоры инкремента и декрементаУнарный плюс и минусОператор приведения типаОператор приведения типаОператор приведения типаОператор приведения типаОператор приведения типаПодавление вывода сообщений об ошибках | Справа налево |
*, /, % | Умножение, деление | |
+, -. | Сложение, вычитаниеКонкатенация | |
<<, >> | Битовый сдвиг | |
<, <=, >, >= | Операторы сравнения | |
==, !====, !==, <> | Операторы сравнения | |
& | Битовое И | |
ˆ | Битовое ИЛИ-НЕ | |
| | Битовое ИЛИ | |
&& | Логическое И | |
|| | Логическое ИЛИ | |
? : | Условный (тернарный) оператор | |
=, +=, -=, *=, /=, .=, %=, &=, |=, ^=, <<=, >>=, => | Операторы присваивания | Справа налево |
AND | Логическое И | |
XOR | Логическое ИЛИ-НЕ | |
OR | Логическое ИЛИ | |
, | Оператор запятая |
С этой темой смотрят:
- Присваивание
- Арифметические операторы
- Операторы сравнения
- Логические операторы
- Побитовые операторы
Тернарный оператор (?:)
Условный оператор (?:) – это единственный тернарный (от лат. ternarius — «тройной») оператор с тремя операндами в JavaScript. Тернарный оператор возвращает свой второй или третий операнд в зависимости от значения логического выражения, заданного первым операндом.
Первый операнд используется в качестве условия, он вычисляется и преобразуется, при необходимо, в булево значение. Если условие верно , то вычисляется и возвращается значение1. Если условие неверно , то вычисляется и возвращается значение2:
Например:
Выполнить код »
Скрыть результаты
Читается этот код так: если а больше b, то c = a, иначе c = b.
Можно записать тоже самое через if/else:
Выполнить код »
Скрыть результаты
Вложенные инструкции if/else, так же можно заменить последовательностью из тернарных операторов:
Выполнить код »
Скрыть результаты
Условный оператор имеет ассоциативность справа налево, поэтому следующие две инструкции эквивалентны:
if/elseнеполным вычислением
Выполнить код »
Скрыть результаты
В предыдущем примере оператор сначала проверяет выполняется ли временное условие (чему равна переменная time). Если условие выполняется, то в переменную message будет записана соответствующая строка приветствия. В противном случае, в силу побочного эффекта, связанного с неполным вычислением, оператор выведет и т.д. Этот метод используется не очень часто, но если вам встретится нечто подобное, то вы теперь знаете, как работают подобные инструкции.
План курса
Программа обучения включает видео уроки по изучению PHP и MySQL с нуля. Благодаря интерактивным тестам и заданиям, Вы сможете закрепить полученные знания по Php программированию веб сайтов на практике.
развернуть все
свернуть все
1. Подготовка к работе. Установка PHP и настройка веб-сервера XAMPP
- 1.1 Установка и настройка XAMPP (PHP, MYSQL, APACHE)10:18
- 1.2 Настройка виртуального хоста (Virtual Host) в XAMPP (опционально)05:59
2. Переменные и константы
- 2.1 Переменные в PHP06:56
- 2.2 Тестирование00:15
- 2.3 Тестирование00:15
- 2.4 Интерактивное задание02:00
- 2.5 Интерактивное задание02:00
- 2.6 Типы переменных и константы03:02
- 2.7 Тестирование00:15
- 2.8 Тестирование00:15
- 2.9 Интерактивное задание03:00
3. Условные операторы и ветвления
- 3.1 Ветвления. Условные операторы if else06:33
- 3.2 Тестирование00:15
- 3.3 Интерактивное задание02:00
- 3.4 Тестирование01:00
- 3.5 Ветвления. Условные операторы. Switch07:41
- 3.6 Тестирование00:15
- 3.7 Тестирование00:15
- 3.8 Интерактивное задание02:00
4. Циклы
- 4.1 Циклы в PHP. Цикл while05:07
- 4.2 Тестирование00:30
- 4.3 Интерактивное задание01:00
-
4.4 Цикл DO WHILE02:40
-
4.5 Тестирование00:30
-
4.6 Цикл FOR01:42
-
4.7 Тестирование00:15
5. Массивы. Функции для работы с массивами
-
5.1 Массивы в PHP07:52
-
5.2 Интерактивное задание05:00
-
5.3 Массивы в PHP. Цикл Foreach04:38
-
5.4 Интерактивное задание03:00
-
5.5 Массивы. Способы создания массивов в языке PHP03:45
-
5.6 Тестирование00:15
-
5.7 Функции для работы с массивами06:50
-
5.8 Тестирование00:15
-
5.9 Тестирование00:15
-
5.10 Тестирование00:15
-
5.11 Интерактивное задание03:00
-
5.12 Интерактивное задание02:00
-
5.13 Функции implode и explode07:28
-
5.14 Интерактивное задание02:00
-
5.15 Тестирование00:15
-
5.16 Многомерные массивы в PHP08:16
-
5.17 Многомерные массивы. Способы создания03:46
6. Функции. Создание собственных функций
-
6.1 Получение данных из HTML формы. Методы GET и POST11:32
-
6.2 Тестирование00:15
-
6.3 Тестирование00:30
-
6.4 Функции для работы со строками. Защита формы сайта09:25
-
6.5 Тестирование00:15
-
6.6 Тестирование00:15
-
6.7 Создание собственных функций. Валидация функций07:37
-
6.8 Тестирование00:15
-
6.9 Функции. Взаимодействие функций между собой05:17
7. Язык SQL. Работа с базами данных. SQL запросы
-
7.1 MySQL и PHPMYADMIN. Начало работы09:57
-
7.2 Вывод данных из MySQL. Оператор SELECT14:39
-
7.3 Вставка данных в MySQL. Оператор INSERT05:04
-
7.4 Обновление данных в таблице MySQL. Оператор UPDATE02:43
-
7.5 Удаление данных из таблицы MySQL. Оператор DELETE05:52
-
7.6 Проектирование базы данных. Хранение данных в разных таблицах08:05
-
7.7 SQL запросы. INNER JOIN05:06
-
7.8 SQL запросы. LEFT JOIN и RIGHT JOIN04:37
8. Работа с XML и файлами
-
8.1 Работа с XML. Чтение XML и вывод в браузер в виде массива 07:43
-
8.2 Работа с XML. Создадим функцию для записи данных из XML в MySQL11:55
-
8.3 Работа с XML. Запишем данные из XML в базу16:36
-
8.4 Работа с файлами с помощью PHP16:16
9. Объектно-ориентированное программирование (ООП)
-
9.1 ООП. Классы, Геттеры и Сеттеры10:54
-
9.2 ООП. Инкапсуляция04:35
-
9.3 ООП. Наследование15:09
-
9.4 ООП. Полиморфизм. Интерфейсы07:35
-
9.5 ООП. Полиморфизм. Абстрактные классы16:19
Завершение курса — Получение Сертификата
Выражения
Выражение — это любая единица исходного кода программы, которая может быть вычислена для получения значения, например, вызов функции, использование операторов, или просто обращение к переменной по имени. В PHP почти всё является выражением.
Выражения делятся на простые (их также называют первичными) и сложные. Первичные выражения являются самостоятельными выражениями — они не включают в себя ещё более простых выражений. Например, к первичным выражениям относятся: идентификаторы, литералы и оператор группировки. Сложные выражения состоят из простых выражений. Типичный способ конструирования сложных выражений из простых выражений заключается в использовании операторов:
// Примеры первичных выражений 11 // Числовой литерал $str // Возвращает значение переменной [] // Литерал массива () // Оператора группировки // Примеры сложных выражений $alpha + 19 // Возвращает результат арифметической операции ($alpha - 37) * $beta / 2 // Возвращает результат арифметических операций foo() // Возвращает результат вызова функции $mass // Возвращает значение элемента массива
Некоторые выражения, так же как и инструкции, оканчиваются точкой с запятой, например:
$a = 5;
Таким образом, разница между выражением и инструкцией заключается в том, что любое выражение — это то, что вычисляется для получения значения, а инструкция — это просто указание на совершение какого-либо действия.
Логины и пароли ютуб : как поставить или поменять их в 2 клика
Оператор присваивания и слияние переменных
Переменные в php используются со знаком непосредственно перед идентификатором:
$mymane = "Иван"; |
Вывод значений переменных:
echo "Я изучаю РНР"; // или print "Я изучаю РНР"; |
Присваивание значений других переменных:
$test1 = $test2; echo $a, " ", $b; // или echo $a; echo " "; echo $b; |
Примеры:
1 2 3 4 5 6 7 8 |
<?php $first = 'text1'; $second = $first; $first = 'new text'; echo "Переменная first равна $first <br>"; echo "Переменная second равна". $second; ?> |
Как видно из примера, оператор присваивания в php — это знак равенства.
Результатом выполнения программы будет:
Переменная first равна new text
Переменная second равна text1
Конструкции выбора
Часто вместо нескольких расположенных подряд инструкций целесообразно воспользоваться специальной конструкцией выбора switch-case. Данная конструкция предназначена для выбора действий, в зависимости от значения указанного выражения. Конструкция switch-case чем-то напоминает конструкцию if-else, который, по сути, является ее аналогом. Конструкцию выбора можно использовать, если предполагаемых вариантов много, например, более 5, и для каждого варианта нужно выполнить специфические действия. В таком случае, использование конструкции if-else становится действительно неудобным.
Синтаксис конструкции switch-case такой:
Принцип работы конструкции switch-case такой:
- Вычисляется значение выражения;
- Просматривается набор значений. Пусть значение1 равно значению выражения, вычисленного на первом шаге. Если не указана конструкция (оператор) break, то будут выполнены команды i, i+1, i+2, … , N. В противном случае (есть break) будет выполнена только команда с номером i.
- Если ни одно значение из набора не совпало со значением выражения, тогда выполняется блок default, если он указан.
Приведем примеры использования конструкции switch-case:
Рассмотренный сценарий выводит x=1 дважды. Еще пример использования конструкции switch-case:
Данный скрипт выводит «Это Яблоко».
Конструкция switch выполняется поэтапно. Сперва никакой код не исполнен. Только, когда конструкция case найдена со значением, которое соответствует значению выражения switch, PHP начинает исполнять конструкции. PHP продолжает исполнять конструкции до конца блока switch, пока не встречается оператор break. Если не использовать конструкции (операторы) break, скрипт будет выглядеть так:
Операторный список для case может быть также пуст, он просто передает управление в операторный список до следующей конструкции case:
Когда ни одно значение из набора не совпало со значением выражения, тогда выполняется блок default, если он указан, например:
Данный скрипт выводит «x не равен 0, 1 или 2», поскольку переменная $x=3.
Конструкция switch-case также имеет альтернативный синтаксис:
Практический пример использования альтернативного синтаксиса для конструкции switch-case:
Как вы уже поняли, данный скрипт выводит «x не равен 0, 1 или 2», так как $x=3.
<<< Назад (Циклы в PHP) |
Вперед >>> (Конструкции объявления) |
Есть еще вопросы или что-то непонятно — добро пожаловать на наш форум портала PHP.SU |
||
|
Проходим через различные управляющие структуры
В предыдущем разделе мы изучили основы структур управления в PHP и их полезность при разработке приложений. В этом разделе мы рассмотрим пару важных структур управления, которые вы часто используете в повседневной разработке приложений.
If
Конструкция позволяет вам выполнить часть кода, если прилагаемое выражение вместе с ней оценивается как true.
Давайте посмотрим на следующий пример, чтобы понять, как это работает.
Вышеприведенный пример должен выводить потому что выражение принимает значение true. Фактически, если вы хотите выполнить только один оператор, приведенный выше пример можно переписать, как показано в следующем фрагменте без скобок.
С другой стороны, если у вас есть несколько операторов для выполнения, вы должны использовать скобки, как показано в следующем фрагменте.
Else
В предыдущем разделе мы обсудили конструкцию , которая позволяет вам выполнить кусок кода, если выражение оценивается как true. С другой стороны, если выражение оценивается как false, оно ничего не сделает. Чаще всего вы также хотите выполнить другой фрагмент кода, если выражение принимает значение false. Вот где выражение появляется на картинке.
Вы всегда используете оператор в сочетании с оператором . В принципе, вы можете определить его, как показано в следующем псевдокоде.
Давайте рассмотрим предыдущий пример, чтобы понять, как он работает.
Поэтому, когда у вас есть два варианта, и один из них должен быть выполнен, вы можете использовать конструкцию .
Else If
Мы можем рассматривать оператор как расширение конструкции . Если у вас есть более двух вариантов на выбор, вы можете использовать инструкцию .
Давайте рассмотрим базовую структуру инструкции , как показано в следующем псевдокоде.
Опять же, давайте попробуем понять это, используя реальный пример из жизни.
Как вы можете видеть в приведенном выше примере, у нас есть несколько условий, поэтому мы использовали ряд инструкций . В случае, если все условия равны false, он выполняет код, указанный в последнем объявлении .
Switch
Оператор switch несколько похож на оператор , который мы только что обсуждали в предыдущем разделе. Единственное отличие — это проверенное выражение.
В случае конструкции у вас есть набор различных условий, и соответствующее действие будет выполнено на основе условия. С другой стороны, если вы хотите сравнить переменную с разными значениями, вы можете использовать оператор .
Как обычно, пример это лучший способ понять оператор .
Как вы можете видеть в приведенном выше примере, мы хотим проверить значение переменной и на основе значения переменной мы хотим вывести сообщение.
Для каждого значения, которое вы хотите проверить с помощью переменной , вы должны определить блок . Если значение сопоставляется с case, будет выполняться код, связанный с этим блоком. После этого вам нужно использовать оператор для завершения выполнения кода. Если вы не используете оператор , выполнение скрипта будет продолжено до последнего блока в инструкции switch.
Наконец, если вы хотите выполнить кусок кода, если значение переменной не соответствует ни одному случаю, вы можете определить его в блоке . Конечно, это не обязательно — это всего лишь способ предоставить случай по умолчанию.
Это был обзор структур условного контроля. Мы обсудим циклы в PHP в следующем разделе.
Оператор Switch PHP
Оператор или «переключатель» заменяет несколько подряд идущих конструкций . При этом он сравнивает одну переменную с множеством значений. Таким образом, это наиболее удобное средство для организации мультиветвления.
- Оператор может проверять как строковые значения (тогда они указываются в кавычках), так и числовые (без кавычек).
- Оператор в конструкции обязателен. Он осуществляет выход из конструкции при истинном условии и выполнении соответствующего условию оператора. Без будут выполняться операторы всех независимо от их истинности.
Рис. 3.5. Условный оператор Switch
Пример: задан массив с полными мужскими именами. Проверять первый элемент массива и в зависимости от имени, выдавать приветствие с коротким именем.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$names=array("Иван","Петр","Семен"); switch($names){ case "Петр" echo "Привет, Петя!"; break; case "Иван" echo "Привет, Ваня!"; break; case "Семен" echo "Привет, Ваня!"; break; default echo "Привет, $names!"; break; } |
Задание php 3_4:
- Создайте переменную и присвойте ей произвольное числовое значение
- С помощью конструкции выведите фразу «Это рабочий день», если значение переменной попадает в диапазон чисел от 1 до 5 (включительно)
- Выведите фразу «Это выходной день», если значение переменной равно числам 6 или 7
- Выведите фразу «Неизвестный день», если значение переменной не попадает в диапазон чисел от 1 до 7(включительно)
Дополните код:
1 2 3 4 5 6 7 8 9 10 11 12 |
... switch(...){ case 1 case 2 ... echo "Это рабочий день"; break; case 6 ... default ... } |
Условные операторы
Условные операторы являются, пожалуй, наиболее распространенными конструкциями во всех алгоритмических языках программирования. Рассмотрим основные условные операторы языка PHP.
Конструкция if
Синтаксис конструкции if аналогичен конструкции if в языке C:
Согласно выражениям PHP, конструкция if содержит логическое выражение. Если логическое выражение истинно (true), то оператор, следующий за конструкцией if будет исполнен, а если логическое выражение ложно (false), то следующий за if оператор исполнен не будет. Приведем примеры:
В следующем примере если переменная $a не равна нулю, будет выведена строка «значение a истинно (true):
В следующем примере если переменная $a равна нулю, будет выведена строка «значение a ложно (false):
Часто вам будет необходим блок операторов, который будет выполняться при определенном условном критерии, тогда эти операторы необходимо поместить в фигурные скобки {…} Пример:
Приведенный пример выведет сообщение, «a больше b», если $a > $b, а затем переменная $a будет приравнена к переменной $b. Заметим, что данные операторы выполняются в теле конструкции if.
Конструкция else
Часто возникает потребность исполнения операторов не только в теле конструкции if, если выполнено какое-либо условие конструкции if, но и в случае, если условие конструкции if не выполнено. В данной ситуации нельзя обойтись без конструкции else. В целом, такая конструкция будет называться конструкцией if-else.
Синтаксис конструкции if-else такой:
Действие конструкции if-else следующее: если истинно, то выполняется, а иначе — . Как и в любом другом языке, конструкция else может опускаться, в этом случае при получении должного значения просто ничего не делается.
Если или должны состоять из нескольких команд, то
они, как всегда, заключаются в фигурные скобки. Например:
Конструкция if-else имеет еще один альтернативный синтаксис:
Обратите внимание на расположение двоеточия ()! Если его пропустить, будет сгенерировано сообщение об ошибке. И еще: как обычно, блоки elseif и else можно опускать
Конструкция elseif
elseif — это комбинация конструкций if и else. Эта конструкция расширяет условную конструкцию if-else.
Приведем синтаксис конструкции elseif:
Практический пример использования конструкции elseif:
Вообще, конструкция elseif не очень удобна, поэтому применяется не так часто.
<<< Назад (Конструкции языка PHP) |
Вперед >>> (Циклы в PHP) |
Есть еще вопросы или что-то непонятно — добро пожаловать на наш форум портала PHP.SU |
||
|
Операторы «кораблей»
Итак, все знают об операторе «космический корабль» с момента выхода PHP 7. Но менее известно, что одновременно с этим релизом был введён целый флот космических кораблей для проведения крупномасштабных операций.
Крошечный космический корабль
Вы можете предоставить эскорт оператору космического корабля, используя крошечный оператор космического корабля. Этот оператор не делает сравнение: он просто добавляет к в таком изысканном стиле.
X-истребители
Если вы хотите добавить огневую мощь к предыдущему флоту, вы можете вызвать истребителей типа X к источнику PHP: . Следующий код вычитает 3 у (в оригинальной статье написано, что оператор прибавит 3 (), но это не так, см. вывод примера ниже — прим. пер.)
Линейный корабль
Оператор линейного корабля обеспечивает поддержку предыдущих операторов. Это один из операторов, работающий только с массивами, точно так же, как . Его следует использовать только самым продвинутым гуру PHP на этой стороне галактики. Не стоит недооценивать его силу.
Разве не лучший способ написать так?
Звезда Смерти
Многие из вас бы спросили, а был ли встроен в PHP оператор «звезда смерти», и ответ таков: в данный момент неизвестно. Есть планы на это, но никто никогда не видел реального экземпляра. Мне бы очень хотелось видеть оператор в три строки, так как PHP будет первым, кто будем иметь подобное (и, когда это произойдёт, надеюсь, не с моего счёта спишут стоимость этого оператора).
Количество операндов
Разные операторы принимают разное количество операндов. Операторы, которые работают с двумя операндами называются бинарными, к таким операторам относятся сложение, вычитание умножение и т.д.
Другие операторы могут принимать всего один операнд, они называются унарными. Примерами унарного оператора могут служить унарный минус (-), инкремент, декремент и т.д.
Существует также один оператор, который может работать с тремя операндами, такой оператор называется тернарный. Этим оператором является оператор, представляющий собой сокращенную форму записи условного оператора if, о котором мы поговорим позже, когда будем рассматривать условные операторы.
Логические операции
Логические операции позволяют комбинировать логические значения (называемые также истинностными) для получения новых логических значений. Как показано в таблице ниже, в языке PHP поддерживаются стандартные логические операции (and, or, not и xor), причем первые две имеют альтернативные версии.
Операция | Описание |
---|---|
and | Операция, результат которой принимает истинное значение тогда и только тогда, когда оба ее операнда имеют истинное значение |
or | Операция, результат которой принимает истинное значение, если один из ее операндов (или оба операнда) имеет истинное значение |
! | Операция, результат которой принимает истинное значение, если ее единственный операнд (задаваемый справа от знака операции) имеет ложное значение, и ложное значение, если операнд имеет истинное значение |
xor | Операция, результат которой принимает истинное значение, если любой из ее операндов (но не оба одновременно) имеет истинное значение |
&& | То же, что и операция and, но связывает свои операнды сильнее по сравнению с этой операцией |
|| | То же, что и операция or, но связывает свои операнды сильнее по сравнению с этой операцией |
Операции && и || должны быть знакомы программистам, работающим с языком C. Операцию ! обычно называют not, поскольку она становится отрицанием для того операнда, к которому применяется.
Чтобы проверить, имеют ли оба операнда значение TRUE, следует использовать оператор AND, который можно записать и как двойной амперсанд (&&). Оба оператора, AND и &&, являются логическими, их единственное отличие в том, что оператор && имеет более высокий приоритет, чем оператор AND. То же самое относится к операторам OR и ||. Оператор AND возвращает TRUE, только если оба операнда имеют значение TRUE; в противном случае возвращается значение FALSE.
Чтобы проверить, имеет ли хотя бы один операнд значение TRUE, следует использовать оператор OR, который можно записать и как двойную вертикальную линию (||). Этот оператор возвращает TRUE, если хотя бы один из операндов имеет значение TRUE.
При использовании оператора OR в программе могут появиться трудноуловимые логические ошибки. Если PHP обнаружит, что первый операнд имеет значение TRUE, он не станет вычислять значение второго операнда. Это позволяет экономить время исполнения, но вы должны внимательно следить за тем, чтобы код, от которого зависит корректная работа программы, не был помещен во второй операнд.
Проверить, имеет ли значение TRUE только один из операндов (но не оба сразу), позволяет оператор XOR. Этот оператор возвращает значение TRUE, если один и только один из операндов имеет значение TRUE. Если оба операнда имеют значение TRUE, оператор вернет значение FALSE.
Инвертировать логическое значение можно с помощью оператора NOT, который часто записывается и в виде восклицательного знака (!). Он возвращает значение TRUE, если операнд имеет значение FALSE, и значение FALSE, если операнд имеет значение TRUE.
В таблице ниже приведены некоторые логические выражения и их результаты:
Пример логического выражения | Результат |
---|---|
TRUE AND TRUE | TRUE |
FALSE AND TRUE | FALSE |
TRUE OR FALSE | TRUE |
FALSE OR FALSE | FALSE |
TRUE XOR TRUE | FALSE |
TRUE XOR FALSE | TRUE |
!TRUE | FALSE |
!FALSE | TRUE |
Тернарный оператор ?:
Оператор ?: – это тернарный (трехместный) оператор, который принимает три операнда. Он работает аналогично инструкции if, но возвращает значение одного из двух выражений. Выражение, которое будет вычисляться, определяется условным выражением. Двоеточие (:) служит разделителем выражений:
(условие) ? вычислить_если_условие_истинно : вычислить_если_условие_ложно;
В примере ниже проверяется значение, и в зависимости от его значения (TRUE или FALSE) возвращаются разные строки:
Создание сообщения с помощью оператора ?:
Вполне очевидно, что приведенный выше оператор эквивалентен следующему оператору:
Код PHP
Флешки для iPhone
Инструкция if
Условный оператор if (в переводе с англ. — «если») реализует выполнение определённых команд при условии, что некоторое логическое выражение (условие) принимает значение «истина» .
Синтаксис:
Условие в этой конструкции может быть любым выражением. JavaScript автоматически преобразует результат выражения в логическое значение, вызывая для него функцию Boolean(). Если условие эквивалентно , выполняется инструкция, в противном случае – нет.
Выполняемая инструкций может быть представлена одной строкой или блоком кода (группой строк в фигурных скобках), например:
Выполнить код »
Скрыть результаты
Примечание: Рекомендуется всегда использовать фигурные скобки, даже если нужно выполнить всего одну строку кода. Это ясно показывает, что должно быть выполнено в каждом случае и улучшает читаемость кода.
Типы операндов
Создавая выражения, необходимо обращать внимание на типы операндов, с которыми работает каждый из операторов, потому что каждый оператор ожидает получить операнды конкретного типа данных. Например, нельзя выполнить умножение двух строк
'a' * 'b'
Однако PHP старается максимально облегчить вам жизнь, автоматически выполняя необходимые преобразования типов операндов для конкретных операторов. Следующее выражение вполне допустимо:
'10' * '10'
В этом выражении интерпретатор PHP автоматически преобразует строки в числа и перемножает их. Но иногда такое автоматическое преобразование невозможно, поэтому будьте внимательны и следите за используемыми типами операндов.
Примечание: Когда PHP выполняет автоматическое преобразование типа, это называется неявным приведением типа, если преобразование типа выполняется вручную — это называется явным приведением типа.
Логическое НЕ (!)
Оператор логическое НЕ, его также называют отрицание обозначается знаком . Он является унарным оператором, помещаемым перед одиночным операндом. Оператор «логическое НЕ» используется для инверсии логического значения своего операнда и всегда возвращает или .
Если потребуется инвертировать значение выражения, например , необходимо будет использовать круглые скобки: . Также с помощью оператора можно преобразовать любое значение в его логический эквивалент, дважды применив оператор: .
<?php $a1 = 10; var_dump((11 == 11)); // true // оператора ! инвертирует значение var_dump(!(11 == 11)); // false // преобразует в логическое значение var_dump(!!$a1); // true ?>
С этой темой смотрят:
- Выражения и операторы
- Арифметические операторы
- Операторы сравнения
- Побитовые операторы
Ответы на вопросы читателей
Я случайно в настройках телефона fly андроид 2.3.5 очистил данные браузера (обычного) и поэтому у меня удалились закладки. Помогите их восстановить.
Ответ. Увы, если вы пользовались стандартным браузером Android, восстановить закладки не удастся. Пользуйтесь Google Chrome и синхронизируйте все данные с аккаунтом Google, и таких проблем больше не возникнет.
У меня вот такая проблема: в Google Chrome на Android было много сохранённых закладок, и они все закрылись: через историю восстановить не смогу, так как вкладки в Chrome открыты достаточно давно, и я их не посещала. Но они мне были нужны. Как восстановить вкладки в Хроме? Что делать – не знаю.
Ответ. Чтобы вернуть закрытую вкладку, вы можете обратиться к истории Google. вполне возможно, что ваши поисковые запросы еще хранятся в записях поисковой системы. Конечно, вы не сможете восстановить закрытую вкладку таким образом, однако анализ истории Google поможет вам найти сайты, которые были в закрытых вкладках Chrome.