Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VOPROSY_PO_IP.docx
Скачиваний:
16
Добавлен:
18.05.2015
Размер:
693.24 Кб
Скачать

21.Классификация операторов php, порядок их выполнения.

2.1. Классификация операторов php и порядок их выполнения

Во-первых, дадим качественное определение оператора в PHP. Оператором называется конструкция языка, которая (при условии правильного синтаксиса) после обработки интерпретатором производит некоторые действия над выражениями языка, заключающиеся либо в вычислении значения этого выражения, либо в изменении порядка выполнения последовательно расположенных команд языка.

Отсюда следует, что функции или любые другие конструкции, которые возвращают значение (например, print()), являются операторами, в отличие от всех остальных языковых конструкций (например, echo()), которые ничего не возвращают.

Представим совокупность основных операторов языка в виде классификационной таблицы (Таблица 2-1). Эта классификация делит операторы по крупным группам. Далее приведена ещё одна возможная классификация операторов. Она более подробная, и её можно назвать «конкретно-функциональной».

Но в целом надо сказать, что классификация операторов носит достаточно условный характер и предназначена, прежде всего, для их лучшего усвоения.

Таблица 2‑2 Классификация основных операторов PHP по группам

Тип 1 уровня

Тип 2 уровня

Тип 3 уровня

Операторы обработки данных

Математические

Арифметические

Математические

функции

Присваивания

Инкремента и декремента

Операторы над массивами

Строковые

Операторы над строками

Операторы над массивами

Строковые функции

Побитовые

Логические

Операторы сравнения

Сравнения арифметических величин

Эквивалентности

Операторы логических операций

Операторы управления выполнения скрипта

Условные операторы

Операторы цикла

Операторы прерывания циклов

Приведём ещё одну возможную классификацию операторов PHP:

  1. Арифметические операторы PHP

  2. Логические операторы PHP

  3. Строковые операторы PHP

  4. Побитовые операторы PHP

  5. Операторы присвоения PHP

  6. Операторы сравнения PHP

  7. Операции инкремента и декремента PHP

  8. Операторы эквивалентности PHP

  9. Операции с символьными переменными PHP

  10. Приоритеты операторов PHP

  11. Операторы исполнения PHP

  12. Операторы работы с массивами

  13. Операторы управления ошибками PHP

  14. Операторы классов PHP

Приоритет операторов

Как правило, в программах выражения включают не один оператор. Поэтому актуален вопрос о порядке их выполнения. Практически в любом языке программирования принято правило определения порядка выполнения операторов в зависимости от присвоенного им приоритета.

Правила таковы:

  1. Если в выражении нет скобок, то раньше выполняются операторы с более высоким приоритетом.

  2. Операторы с одинаковым приоритетом выполняются в порядке их следования слева направо.

  3. Скобки увеличивают приоритет операторов выражения внутри них. Причём наибольшим приоритетом наделяется наиболее внутренняя скобка.

  4. Функции, входящие в выражении, обладают наивысшим приоритетом.

В таблице Таблица 2 -3 приводится приоритеты операторов с указанием их ассоциативности.

Таблица 2‑3

Операторы PHP в порядке убывания приоритета

Левая ассоциативность подразумевает, что оператор вычисляется слева направо, правая ассоциативность соответственно подразумевает противоположный порядок.

22.Логические и побитовые операторы. Назначение и особенности использования.

. Побитовые операторы

Побитовые операции предназначены для работы (установки/снятия/проверки) групп битов в целой переменной. То есть они предназначены для работы с отдельными битами в целых числах. Необходимость их использования возникает тогда, когда требуется, например, хранить в одном числе большое число разнообразных признаков (получается подобие штрих-кода), что встречается в достаточно сложных программах.

Побитовые операторы позволяют устанавливать конкретные биты в 0 или 1 для целочисленных значений.

В случае если и левый, и правый операнды являются строками, побитовые операции будут работать с их ASCII-представлениями.

Биты целого числа — это не что иное, как отдельные разряды того же самого числа, записанного в двоичной системе счисления. Например, в двоичной системе число 12 будет выглядеть как 1100, а 2 — как 10, так что выражение 12|2 вернет нам число 14 (1110 в двоичной записи).

Если переменная не целая, то она вначале округляется, а уж затем к ней применяются перечисленные ниже операторы.

Для представления одного числа используются 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.

Установленными являются биты (разряды), значения которых изменились в результате присвоения ячейке конкретного значения или при использовании конкретного числа или строки.

Побитовые операторы похожи на логические операторы, работающие с логическими выражениями. По существу они и являются такими, но операндами для них являются биты целых или строковых данных.

Таблица 2‑4Побитовые операторы PHP

Название

Пример

Описание и результат

Побитовое 'и'

$c=$a & $b

В результате ($c) устанавливаются только те биты, которые установлены и в $a, и в $b.

Побитовое 'или'

$c=$a | $b

Устанавливаются те биты, которые установлены либо в $a, либо в $b.

Исключающее ′или

$c=$a ^ $b

Устанавливаются только те биты, которые установлены либо только в $a, либо только в $b

Отрицание ′не′

$c=~ $a

Устанавливаются те биты, которые в $a не установлены, и наоборот.

Сдвиг влево

$c=$a << $b

Все биты переменной $a сдвигаются на $b позиций влево (каждая позиция подразумевает 'умножение на 2')

Сдвиг вправо

$c=$a >> $b

Все биты переменной $a сдвигаются на $b позиций вправо (каждый сдвиг подразумевает 'деление на 2')

Таблица 2‑5 Результаты работы побитовых операторов (поп) для значений $a =1 и $b=5 (в десятичной системе) $c=$a (поп) $b

Операция

Значение

$c

&

1

|

5

^

4

~

-2

<<

32

>>

0