- Операторы инкремент и декремент, Логические, сравнения, Поразрядные, равенства
admin 26 Февраля 2006 в 21:33:33
Операторы инкремента и декремента
Удобные вспомогательные операторы инкремента (++) и декремента (--), приведенные в табл. 3.5, делают программу более наглядной и обеспечивают укороченную запись для увеличения или уменьшения текущего значения переменной на 1.
Таблица 3.5. Операторы инкремента и декремента
Интересный факт: эти операторы могут располагаться как слева, так и справа от операнда. Действия, выполняемые оператором, зависят от того, с какой стороны от операнда он находится. Рассмотрим следующий пример:
Как видите, расположение операторов инкремента и декремента оказывает сильное влияние на результат вычислений.
Логические операторы
Логические операторы (табл. 3.6) наряду с математическими операторами играют важную роль в любом приложении РНР, обеспечивая средства для принятия решений в зависимости от значения переменных. Логические операторы позволяют управлять порядком выполнения команд в программе и часто используются в управляющих конструкциях (таких, как условная команда i f, а также циклы for и while).
Таблица 3.6. Логические операторы
Логические операторы часто используются для проверки результата вызова функций:
Возможен один из двух вариантов:
файл filename.txt существует;
будет выведено сообщение: «File does not exist!».
Операторы равенства
Операторы равенства (табл. 3.7) предназначены для сравнения двух величин и проверки их эквивалентности.
Таблица 3.7. Операторы равенства
Даже опытные программисты часто допускают одну распространенную ошибку — они пытаются проверять равенство двух величин, используя всего один знак равенства (например, $а = $b). Помните, при такой записи значение $b присваивается $а, и желаемый результат не будет достигнут.
Операторы сравнения
Операторы сравнения (табл. 3.8), как и логические операторы, позволяют управлять логикой программы и принимать решения при сравнении двух и более переменных.
Таблица 3.8. Операторы сравнения
Обратите внимание: операторы сравнения предназначены для работы только с числовыми значениями. Хотя возникает искушение воспользоваться ими для сравнения строк, результат, скорее всего, окажется неверным. В РНР существуют стандартные функции для сравнения строковых величин. Эти функции подробно рассматриваются в главе 8.
Поразрядные операторы
Поразрядные операторы выполняют операции с целыми числами на уровне отдельных битов, составляющих число. Чтобы лучше понять принцип их работы, необходимо иметь хотя бы общее представление о двоичном представлении десятичных чисел. В табл. 3.9 приведены примеры десятичных чисел и соответствующих им двоичных представлений.
Таблица 3.9. Десятичные числа и их двоичные представления
Поразрядные операторы, перечисленные в табл. 3.10, представляют собой особый случай логических операторов, однако они приводят к совершенно иным результатам.
Таблица 3.10. Поразрядные операторы
Удобные вспомогательные операторы инкремента (++) и декремента (--), приведенные в табл. 3.5, делают программу более наглядной и обеспечивают укороченную запись для увеличения или уменьшения текущего значения переменной на 1.
Таблица 3.5. Операторы инкремента и декремента
| Результат] | ||
| ++$а, $а++ | Инкремент | Переменная $а увеличивается на 1 |
| --$а, $а-- | Декремент | Переменная $а уменьшается на 1 |
Интересный факт: эти операторы могут располагаться как слева, так и справа от операнда. Действия, выполняемые оператором, зависят от того, с какой стороны от операнда он находится. Рассмотрим следующий пример:
<?
$inventory = 15; // Присвоить Sinventory целое число 15
$old_inv = Sinventory--; // СНАЧАЛА присвоить $old_inv значение
// Sinventory. а ЗАТЕМ уменьшить Sinventory.
$orig_iinventory = ++inventory;// СНАЧАЛА увеличить Sinventory. а ЗАТЕМ
// присвоить увеличенное значение Sinventory
// переменной $orig_inventory.?>
Как видите, расположение операторов инкремента и декремента оказывает сильное влияние на результат вычислений.
Логические операторы
Логические операторы (табл. 3.6) наряду с математическими операторами играют важную роль в любом приложении РНР, обеспечивая средства для принятия решений в зависимости от значения переменных. Логические операторы позволяют управлять порядком выполнения команд в программе и часто используются в управляющих конструкциях (таких, как условная команда i f, а также циклы for и while).
Таблица 3.6. Логические операторы
| Название | Результат | |
| $а && $b | Конъюнкция | Истина, если истинны оба операнда , |
| $aAND$b | Конъюнкция | Истина, если истинны оба операнда |
| $а И $b | Дизъюнкция | Истина, если истинен хотя бы один из операндов |
| $а OR $b | Дизъюнкция | Истина, если истинен хотя бы один из операндов |
| !$а | Отрицание | Истина, если значение $а ложно |
| NOT !$a | Отрицание | Истина, если значение $а ложно |
| $а XOR $b | Исключающая дизъюнкция | Истина, если истинен только один из операндов |
Логические операторы часто используются для проверки результата вызова функций:
<? file_exists("filename.txt") OR print "File does not exist!";?>
Возможен один из двух вариантов:
Операторы равенства
Операторы равенства (табл. 3.7) предназначены для сравнения двух величин и проверки их эквивалентности.
Таблица 3.7. Операторы равенства
| Пример | Название | Результат |
| $a==$b | Проверка равенства | Истина, если $а и $b равны |
| $а != $b | Проверка неравенства | Истина, если $а и $b не равны |
Даже опытные программисты часто допускают одну распространенную ошибку — они пытаются проверять равенство двух величин, используя всего один знак равенства (например, $а = $b). Помните, при такой записи значение $b присваивается $а, и желаемый результат не будет достигнут.
Операторы сравнения
Операторы сравнения (табл. 3.8), как и логические операторы, позволяют управлять логикой программы и принимать решения при сравнении двух и более переменных.
Таблица 3.8. Операторы сравнения
| Пример | Название | Результат |
| Меньше | Истина, если переменная $а меньше $b | |
| Больше | Истина, если переменная $а больше $b | |
| $a <= $b | Меньше или равно | Истина, если переменная $а меньше или равна $b |
| $a >= $b | Больше или равно | Истина, если переменная $а больше или равна $b |
| Тернарный оператор | Если переменная $а равна 12, возвращается значение 5, а если не равна — возвращается 1 |
Обратите внимание: операторы сравнения предназначены для работы только с числовыми значениями. Хотя возникает искушение воспользоваться ими для сравнения строк, результат, скорее всего, окажется неверным. В РНР существуют стандартные функции для сравнения строковых величин. Эти функции подробно рассматриваются в главе 8.
Поразрядные операторы
Поразрядные операторы выполняют операции с целыми числами на уровне отдельных битов, составляющих число. Чтобы лучше понять принцип их работы, необходимо иметь хотя бы общее представление о двоичном представлении десятичных чисел. В табл. 3.9 приведены примеры десятичных чисел и соответствующих им двоичных представлений.
Таблица 3.9. Десятичные числа и их двоичные представления
| Двоичное представление |
| 10 |
| 101 |
| 1010 |
| 1100 |
| 10010001 |
| 1011000100111111101100 |
Поразрядные операторы, перечисленные в табл. 3.10, представляют собой особый случай логических операторов, однако они приводят к совершенно иным результатам.
Таблица 3.10. Поразрядные операторы
| Пример | [TD ]Название[/TD]Результат | |
| $а&$b | Конъюнкция | С битами, находящимися в одинаковых разрядах $а и $b, выполняется операция конъюнкции |
| $а|$Ь | Дизъюнкция | [TDheight="36"]С битами, находящимися в одинаковых разрядах $а и $b, выполняется операция дизъюнкции [/TD]|
| С битами, находящимися в одинаковых разрядах $а и $b, выполняется операция исключающей дизъюнкции | ||
| ~$b | Отрицание | [TDheight="19"]Все разряды переменной $b инвертируются [/TD]|
| Переменной $а присваивается значение $b, сдвинутое влево на два бита | ||
| Переменной $а присваивается значение $b, сдвинутое вправо на два бита |
![]() |
![]() |
|
Добавить новость
Шрифт: 
