- •1.3. Комментарии в рнр-сценариях
- •2. Переменные и типы данных
- •3. Константы
- •4. Операции с переменными
- •5. Выражения и операции
- •5.1. Понятие «выражение» в php
- •5.2. Операции в php
- •5.3. Строки и строковые выражения
- •6. Ссылки
- •7. Основные конструкции языка
- •7.1. Условный оператор
- •7.2. Циклы
- •7.3. Инструкция switch-case (конструкция выбора)
- •8. Собираем один скрипт из нескольких отдельных скриптов
- •8.1. Инструкции require
- •8.2. Инструкции include
- •8.3. Особенности использования include и require
- •8.4. Инструкции однократного включения include_once и require_once
- •9. Обработка ошибок
5. Выражения и операции
5.1. Понятие «выражение» в php
Выражения являются теми «кирпичиками», из которых состоят РНР-программы. Практически все, что вы пишете в программе, является выражением. При этом под выражением понимается то, что имеет значение. Можно сказать и по-другому: все, что имеет значение, является выражением. Самое простое выражение — это константа, стоящая в правой части оператора присваивания: $х = 100;
Разберемся, что есть что. $х — это переменная, = — это оператор присваивания, а 100 — это и есть выражение. Его значение — 100.
Выражением может служить и переменная, если ей сопоставлено определенно значение. Например:
$х = 4;
$у = $х;
В первом операторе выражением является константа 4. Во втором — переменная $х, так как ранее ей было присвоено значение 4. Но это еще не все, $у = $х тоже является выражением! Ведь не вызывает сомнения то, что его значение 4. Это, в свою очередь, позволяет использовать следующие операторы: $у = $х = 5 или $у = ($х = 5).
Таким образом, в середине выражения можем использовать оператор присваивания:
$у = 1;
$х = 100*($у = 2) * 5у;
Очевидно, что переменной $х будет присвоено значение 400 (100*2 = 200 *8 2 = 400).
5.2. Операции в php
Арифметические операции
Как и в любом другом языке, мы можем использовать арифметические операции:
* X + Y — сложение;
* X — Y — вычитание;
* X * Y — умножение;
* X / Y — деление;
* X % Y — остаток от деления X на Y.
Также возможно использование скобок. Приоритет одних арифметических операций над другими и изменение приоритетов при использовании скобок в арифметических выражениях соответствуют обычным математическим правилам.
К арифметическим операциям можно также отнести операции инкремента и декремента:
» операция инкремента $х++ увеличивает значение на 1;
» операция декремента $х~ уменьшает значение на 1.
Битовые операции
Данные операции предназначены для установки или снятия групп битов целочисленной переменной. Ведь любое число — это просто последовательность бит. Целые числа в PHP — 32-разрядные, поэтому для представления одного числа используются 32 бита:
0000 0000 0000 0000 0000 0000 0000 0000 -это ноль
0000 0000 0000 0000 0000 0000 0000 0001 -это 1
0000 0000 0000 0000 0000 0000 0000 0010 -это 2
0000 0000 0000 0000 0000 0000 0000 0011 -это 3
0000 0000 0000 0000 0000 0000 0000 0100 -это 4
0000 0000 0000 0000 0000 0000 0000 0101 -это 5
0000 0000 0000 0000 0000 0000 0000 1111 - это 15
Битовые операции:
* х & у — будут установлены те биты, которые установлены в х и одновременно: х = 1111 (15) у = 1100 (12) Результат = 1100 (12) .
* х | b — будут установлены только те биты, которые были установлю ны или в х или в у: х = 0100 (4) у = 0101 (5) Результат = 0101 (5).
* ~х — инвертирование битов: х = 1001 Результат = ОНО.
* х << у — поразрядный сдвиг битов х влево на у разрядов: х = 0010 у = 0001 (1 разряд) Результат = 0100.
* х>> у — поразрядный сдвиг битов х вправо на у разрядов: х = 0010 у = 0001 (1 разряд) Результат = 0001.
Логические выражения
Логические выражения — это выражения, результатом которых может быть или истина, или ложь. Примеры логических выражений:
$х = true; // $х = истина
$х = $у<0; //$x = true, если $у < О
$х = $у == 0; // $х = true, если $у = О
$х = $у> = 0&&$у< = 10 // $х = true, если $у < =0 и $у<=10, то
// есть $у в диапазоне от 0 до 10.
В логических выражениях можно использовать операторы сравнени; логические операции. Операторы сравнения:
== — равно;
!= — не равно;
< — меньше;
> — больше;
>= — больше или равно;
<— — меньше или равно.
В PHP нельзя сравнивать массивы и объекты, разрешается сравнивать только скалярные переменные.
Логические операции:
* !х возвращает true, если х — ложь, и наоборот (отрицание — NOT):
* х && у возвращает true, если х и у — истинны (логическая операция И — AND);
* х | у возвращает true, если истинно хотя бы одно из значений или все они истинны (логическая операция ИЛИ — OR).
Операции операторов инкремента (++) и декремента (--) не работают с логическими переменными, то есть не являются логическими операциями. Можно бы было, конечно, предположить, что если false — это О, следовательно, инкремент false — это true, то есть 1.
<
$х = false;
echo $x;
$х + + ;
echo $х;
?>
Однако приведенный сценарий ничего не выведет (точнее он выведет две пустые строки). Это означает, что операция инкремента для логических значений не работает. То же самое можно сказать и об операции декремента.
Сколько будет 2+2*2? Правильно, 6. Поскольку операция умножения выполняется перед операцией сложения, следовательно, приоритет операции умножения выше. Приоритет арифметических и логических операцийпредставлен в табл. 3.
Операции с более высоким уровнем приоритета выполняются в первую очередь. Если вы в чем-то сомневаетесь, используйте скобки.
Таблица 3. Приоритет операций в PHP.
Прищритет |
Оператор |
Порядок выполнения |
13 |
(постфикс)++(постфикс)-- |
слева направо |
12 |
++(префикс)--()префикс |
справа налево |
11 |
* / % |
слева направо |
10 |
+ - | |
9 |
<< >> | |
8 |
< <= > >= | |
7 |
= = != | |
6 |
& | |
5 |
^ | |
4 |
| | |
3 |
&& | |
2 |
|| | |
1 |
= += - = /= %= >>= <<= = &= ^= |= |
справа налево |