Головна » Файли » PHP » PHP

Приоритетность операторов в PHP
24.05.2012, 18:02

В PHP имеется множество мощных операторов - от арифметических, строковых и логических до операторов присваивания, сравнения и многих других операторов.

Если бы у всех операторов был один и тот же уровень приоритета, то они обрабатывались бы в том порядке, в котором встречались интерпретатору. Фактически многие операторы имеют одинаковый уровень приоритета. Рассмотрим ряд операторов, представленных в примере. 

Прииер. Три эквивалентных выражения 

1 + 2 + 3 - 4 + 52 - 4 + 5 + 3 + 15 + 2 - 4 + 1 + 3 

Из примера видно, что, несмотря на перестановку чисел (и предшествующих им операторов), результат каждого выражения имеет значение 7, поскольку у oпeраторов «плюс» и «минус» одинаковый уровень приоритета. Можно проделать то же самое с операторами умножения и деления. 

Пример. Три выражения, которые также являются эквивалентныии 

1 * 2 * 3 / 4 * 52 / 4 * 5 * 3 * 15 * 2 / 4 * 1 * 3 

В этом примере получаемое значение всегда равно 7,5. Но все меняется, когда в выражении присутствуют операторы с разными уровнями приоритета, как в примере. 

Прииер. Три выражения, в которых присутствуют операторы с разныии уровняии приоритета 

1 + 2 * 3 - 4 * 52 - 4 * 5 * 3 + 15 + 2 - 4 + 1 * 3 

Если бы не существовало приоритетности операторов, то в результате вычисления этих выражений получались бы числа 25, - 29 и 12 соответственно. Но поскольку операторы умножения и деления имеют более высокий уровень приоритета по сравнению с операторами сложения и вычитания, вокруг частей выражения с их участием предполагается наличие скобок, и если их сделать видимыми, выражения будут выглядеть так, как показано в примере. 

Пример. Три выражения, в которых отображены предполагаемые скобки 

1 + (2 * 3) - (4 * 5) 

2 - (4 * 5 * 3) + 15 + 2 - 4 + (1 * 3) 

Очевидно, что PHP должен сначала вычислить подвыражения, заключенные в скобки, для того чтобы получились частично вычисленные выражения, показанные в примере. 

Пример. Выражения после вычисления подвыражений в скобках 

1 + (6) - (20) 

2 - (60) + 15 + 2 - 4 + (4) 

Окончательный результат вычисления этих выражений равен соответственно - 13, - 57 и 6 (что абсолютно отличается от результатов 25, - 29 и 12, которые мы увидели бы при отсутствии приоритетности операторов). Разумеется, исходную приоритетность операторов можно отменить, расставив собственные скобки, и принудительно получить результаты, показанные в самом начале, которые были бы получены в отсутствие приоритетности операторов. 

Прииер. Принудительное выполнение вычислений справа налево 


((1 + 2) * 3 - 4) * 5 

(2 - 4) * 5 * 3 + 1 

(5 + 2 - 4 + 1) * 3 

Теперь, если скобки расставлены правильно, мы видим значения 25, - 29 и 12 соответственно. В таблице снизу. перечислены операторы PHP в порядке их приоритетности от самого высокого до самого низкого уровня.

 

Оператор(ы)
Тип
( )
Скобки
++ - -
Инкремент-декримент
!
Логический
* . %
Арифметические
+ -
Арифметические и строковые
<< >>
Побитовые
<  <= >  >= <>
Сравнения
== != ===  !==
Сравнения
&
Поразрядный ( и ссылочный)
^
Поразрядный
|
Поразрядный
&&
Логический
||
Логический
? :
Трехкомпонентный
= += -= *= /= .= %= &= != ^= <<= >>=
Присваивания
and
Логический
xor
Логический
or
Логический
Категорія: PHP | Додав: [UA]Admin
Переглядів: 719 | Завантажень: 0
Всього коментарів: 0
Додавати коментарі можуть лише зареєстровані користувачі.
[ Реєстрація | Вхід ]

Яку інформацію ви б хотіли бачити на сайті в першу чергу:
Всего ответов: 32
Реклама на сайті Чорнобай - 063-878-77-71 Ковка Киев
Найближчі населені пункти до селища міського типу    Чорнобай: Ви власник цих сайтів, пропоную співпрацю! м. Золотоноша20 км
смт. Оржиця29 км
м. Черкаси32 км
смт. Драбів34 км
смт. Новооржицьке48 км
м. Гребінка50 км
с. Великі Липняги56 км
м. Сміла59 км
м. Лубни61 км
Середа
08.07.2020
09:52

[ Управління профілем ]
Онлайн радио

OnLine
Онлайн всього: 1
Гостей: 1
Користувачів: 0

Користувачів онлайн:
На сайті Чорнобай були:

Ремонт компютерів настройка та устаноака систем, програм та антивірусів, створення рефератів, дипломних, курсових, робіт.Банери та дизайн. Створення сайтів Черкаси - Чорнобай тел. - 063 - 878 - 77 - 71 - 096 - 180 - 12 - 12