Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5 семестр / Инструм.средства / ЛЕКЦИИ / Лекция №4 Общие понятия и описание PHP.doc
Скачиваний:
54
Добавлен:
17.02.2016
Размер:
186.88 Кб
Скачать

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

= += - = /= %= >>= <<= = &= ^= |=

справа налево