В PHP, конечно же, есть множество способов обработать разные данные. В этом уроке мы поговорим о таких базовых понятиях, как операторы и операции.
Еще со времен начальной школы нам всем известны такие математические операции, как сложение, вычитание, деление, умножение и остаток от деления. Все эти операции осуществляются в PHP с помощью соответствующих операторов: +, -, /, *, %.
Для наглядности, приведу пример кода:
Как видим, все очень просто!
Бывают ситуации, когда нам необходимо саму переменную увеличить на определенное значение. Например переменную а, которая равна 10, нужно увеличить на 4 – значение переменной b.
Обратите внимание, какими способами можно это записать:
В коде, приведенном выше, вы видите, как можно сокращенно писать простое выражение, если в нем присутствует дважды одна и та же переменная. Это же правило действует и на все остальные операторы.
В PHP довольно часто приходится увеличивать или уменьшать одну и ту же переменную на единицу. Если это делать стандартным способом, то можно писать что-то вроде этого:
$a = $a + 1; $b = $b – 1;
Если же воспользоваться приведенным выше примером сокращенного написания кода, то мы напишем:
$a += 1; $b _= 1;
Однако, в PHP для этого случае припасены еще два оператора, которых уже не встретишь в программе по математике уровня средней школы. Они называются: инкремента (++) и декремента (--). Используя эти два оператора, мы можем сократить приведенные выше строки:
$a++; $b--;
А можем написать и по-другому:
++$a; --$b;
В чем разница?
Попробуйте набрать следующий код, и посмотрите, каков будет результат в вашем браузере:
Какие числа выведет браузер? 11 и 16?
Нет! 11 и 15.
Почему?
Дело в том, что в первом случае, так как оператор инкремента стоял перед именем переменной, то значение переменной сначала увеличилось на единицу и стало равным 11, а уже затем вывелось на экран. Во втором случае оператор инкремента стоял после выводимой переменной, поэтому сначала вывелось значение переменной на экран, а уже затем оно увеличилось на единицу.
Кроме математических операций PHP позволяет работать также и с логическими. Сюда входят операторы сравнения и булевые условия.
Операторы сравнения все мы уже проходили в школе. Сюда входят такие операторы, как «больше» (>), «меньше» (<), «больше или равно» (>=), «меньше или равно» (<=), «равно» (==).
Все эти операторы сравнивают два значения и возвращают булевское значение false или true.
Обратите внимание на следующий код:
Попробуйте вызвать этот скрипт из своей программы. Вы увидите, что на экран вывелась единица. Это произошло потому, что в результате сравнения чисел 5 и 3 переменной $a было присвоено значение 1 (равноценно true), а переменной $b было присвоено пустое значение (область памяти выделена, но не заполнена никакой информацией). Поэтому сработал только первый оператор echo и вывел на экран единицу.
Мы говорили, что логические операторы работают также с булевыми условиями: И (&& или and), ИЛИ (|| или or), НЕ (!) и исключающее ИЛИ (xor).
1. И (&& или and) – принимает значение true, если оба операнда равны true.
2. ИЛИ (|| или or) – принимает значение true, если оба или один из операндов равен true
3. НЕ (!) – принимает значение true, если операнды имеют разные значения
4. ИЛИ (xor) – это сложение чисел по модулю 2. Рассмотрим этот оператор более подробно.
Для начала представим себе, что у нас есть всего два операнда $a и $b. Операция $a xor $b выдаст нам истину в том, и только в том случае, когда лишь один из операндов истинен, а второй – ложный. Причем не важно, который из них какое имеет значение. Главное, что они разные. Здесь все просто.
Этот код нам выведет единицу только в тех строчках, где операнды, стоящие по обе стороны от оператора xor, имеют противоположные значения, и один из них обязательно истинен.
Но что же выведет нам следующий код?
Вот здесь-то нам и пригодится понимание того, что такое сложение чисел по модулю 2. На самом деле все просто. Представьте себе, что $a – это единица (так как она по условию имеет значение true), а $b – это ноль (так как по условие она имеет значение false), а оператор xor – это обычный плюс. Посчитайте теперь значение выражения «$a xor $b xor $b xor $a xor $b xor $a». Здесь три единицы и три ноля, которые нужно сложить. Выходит число 3. Остаток от деления на 2 равен единице, а единица в данном случае – это письменное отображение значения true. Значит вышеприведенный код выведет нам единицу.
Если бы в этом выражении было всего две $a, то в таком случае результат сложения чисел по модулю был бы равен false, а значит оператор echo ничего бы нам не вывел.
Все статьи этой серии:
- Вступление. Необходимый инструментарий. Первый скрипт
- Базовый синтаксист. Оператор echo
- Переменная. Константы
- Типы данных
- Операторы. Операции
- Ветвления
- Функции
- Область видимости переменных и время их жизни
- Циклы
- Массивы
- Предопределенные массивы. Функции для работы с массивами
- HTTP-запросы
- Формы. Работа с HTML-кодом
- Формы. Обработка средствами PHP
- Базы данных. SQL-запросы
- Базы данных. Работа с SQL средствами PHP
- Защита от SQL-инъекций
- Продолжение следует
Сообщение отредактировал GoodX: 04 Сентябрь 2012 - 02:32