
- •Часть II
- •Оглавление
- •Введение
- •Семейство tcp/ip
- •Эмулятор Web - сервера
- •Порядок выполнения работы
- •Операции инкремента и декремента
- •Битовые операции
- •Операции сравнения
- •Операция эквивалентности
- •Логические операции
- •Конструкции (инструкции) языка php Инструкция if-else
- •Двойное (составное) условия If-Else
- •Вложенные конструкции if-else
- •Цикл, с предусловием while
- •Цикл, с постусловием do-while
- •Универсальный цикл for
- •Инструкции break
- •Конструкция switch-case
- •Конструкция include
- •Порядок выполнения работы
- •Контрольные вопросы
- •Как создается простой массив?
- •Ассоциативные массивы
- •Многомерный массив
- •Инструкция list
- •Создание базы данных и таблиц
- •Как подключится к созданной базе данных firma
- •Как вывести на экран всю таблицу в цикле?
- •Подключение к циклу printf
- •Оператор выборки select
- •Оператор вставки insert
- •Создаем форму для добавления нового сотрудника
- •Функция обновления записей в базе данных update
- •Оператор удаления delete
- •Задание
- •Порядок выполнения работы
- •Контрольные вопросы
- •Литература
Операции сравнения
Это в своем роде уникальные операции, потому что независимо от типов своих аргументов они всегда возвращают одно из двух: false или true.
Операции сравнения позволяют сравнивать два значения между собой и, если условие выполнено, возвращают true, а если нет — false.
а == b — истина, если, а равно b.
а != b — истина, если, а не равно b.
а < b — истина, если, а меньше b.
а > b — истина, если, а больше b.
а <= b — истина, если, а меньше либо равно b.
а >= b — истина, если, а больше либо равно b.
Следует отметить, что в РНР сравнивать можно только скалярные (то есть строки и числа) переменные. Для массивов и объектов этого делать нельзя. Их даже нельзя сравнивать на равенство (при помощи оператора ==), но при выполнении такой операции РНР не выдает предупреждения.
Операция эквивалентности
В РНР версии 4 появился новый оператор сравнения — тройной знак равенства = = =, или оператор проверки на эквивалентность.
Например, следующий код выведет, что значения переменных равны:
$а=10;
$b="10";
if($a==$b) echo "а и b равны";
Это несмотря на то, что переменная, $а представляет собой число, а $b - строку.
Внимание!
$а=0; // ноль
$b=""; // пустая строка
if($a==$b) echo "а и b равны";
Хотя $а и $b явно не равны даже в обычном понимании этого слова, программа заявит, что они совпадают. Дело в том, что если один из операндов логического оператора может трактоваться как число, то оба операнда трактуются как числа. При этом пустая строка превращается в 0, который затем и сравнивается с нулем. Неудивительно, что оператор echo срабатывает.
Проблему решает оператор эквивалентности === (тройное равенство). Он не только сравнивает два выражения, но также их типы.
Пример 12
$а=0; // ноль
$b=" "; // пустая строка
if($a===$b) echo "а и b равны";
Вот теперь ничего напечатано не будет. Но возможности оператора эквивалентности идут далеко за пределы сравнения "обычных" переменных. С его помощью можно сравнивать также и массивы, объекты и т. д. Это очень удобно. пример:
$а=аrrау('а'=>'ааа');
$b=array('b'=>'bbb');
if ($a==$b) echo "С использованием == a=b<br>";
if ($a===$b) echo "С использованием === a=b<br>";
Если запустить представленный код, то выведется первое сообщение, но не второе. Произойдет это по той причине, что, как мы уже говорили, операнды-массивы преобразуются в строки Array, которые затем и будут сравниваться. Оператор === лишен этого недостатка, поэтому работает верно. Разумеется, для оператора === существует и его антипод — оператор !== (он состоит также из трех символов!).
Логические операции
Логические операции предназначены исключительно для работы с логическими выражениями и также возвращают false или true.
| а — истина, если, а ложно, и наоборот.
а && b — истина, если истинны и а, и b.
a | | b — истина, если истинны или а, или b, или они оба.
Обратите внимание, что, например, | и | | — два совершенно разных оператора, один из которых может потенциально возвращать любое число, а второй — только false и true.