- Операторы инкремент и декремент, Логические, сравнения, Поразрядные, равенства

Печать: Шрифт: Абв Абв Абв
admin 26 Февраля 2006 в 21:33:33
Операторы инкремента и декремента

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

Таблица 3.5. Операторы инкремента и декремента

[TD align=middle]Пример][/TD][TD align=middle]Название][/TD]
Результат]
++$а, $а++ИнкрементПеременная $а увеличивается на 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. Логические операторы

[TD ]Пример [/TD]
Название Результат
$а && $bКонъюнкция Истина, если истинны оба операнда ,
$aAND$b Конъюнкция Истина, если истинны оба операнда
$а И $bДизъюнкция Истина, если истинен хотя бы один из операндов
$а OR $b Дизъюнкция Истина, если истинен хотя бы один из операндов
!$а Отрицание Истина, если значение $а ложно
NOT !$a Отрицание Истина, если значение $а ложно
$а XOR $bИсключающая дизъюнкцияИстина, если истинен только один из операндов


Логические операторы часто используются для проверки результата вызова функций:

<? file_exists("filename.txt") OR print "File does not exist!";?>

Возможен один из двух вариантов:

  • файл filename.txt существует;

  • будет выведено сообщение: «File does not exist!».


  • Операторы равенства

    Операторы равенства (табл. 3.7) предназначены для сравнения двух величин и проверки их эквивалентности.

    Таблица 3.7. Операторы равенства

    [TD ]$а === $b[/TD][TD ]Проверка идентичности [/TD][TD ]Истина, если $а и $b равны и имеют одинаковый тип [/TD]
    Пример Название Результат 
    $a==$b Проверка равенства Истина, если $а и $b равны
    $а != $b Проверка неравенства Истина, если $а и $b не равны


    Даже опытные программисты часто допускают одну распространенную ошибку — они пытаются проверять равенство двух величин, используя всего один знак равенства (например, $а = $b). Помните, при такой записи значение $b присваивается $а, и желаемый результат не будет достигнут.

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

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

    Таблица 3.8. Операторы сравнения

    [TD ]$a<$b [/TD][TD ]$a>$b [/TD][TD ]($a-12)?5: -1 [/TD]
    Пример Название Результат
    Меньше Истина, если переменная $а меньше $b
    Больше Истина, если переменная $а больше $b
    $a <= $b Меньше или равно Истина, если переменная $а меньше или равна $b
    $a >= $b Больше или равно Истина, если переменная $а больше или равна $b
    Тернарный оператор Если переменная $а равна 12, возвращается значение 5, а если не равна — возвращается 1


    Обратите внимание: операторы сравнения предназначены для работы только с числовыми значениями. Хотя возникает искушение воспользоваться ими для сравнения строк, результат, скорее всего, окажется неверным. В РНР существуют стандартные функции для сравнения строковых величин. Эти функции подробно рассматриваются в главе 8.

    Поразрядные операторы

    Поразрядные операторы выполняют операции с целыми числами на уровне отдельных битов, составляющих число. Чтобы лучше понять принцип их работы, необходимо иметь хотя бы общее представление о двоичном представлении десятичных чисел. В табл. 3.9 приведены примеры десятичных чисел и соответствующих им двоичных представлений.

    Таблица 3.9. Десятичные числа и их двоичные представления

    [TD ]Десятичное целое [/TD][TD ]2[/TD][TD ]5[/TD][TD ]10[/TD][TD ]12[/TD][TD ]145[/TD][TD ]1 452 012[/TD]
    Двоичное представление
    10
    101
    1010
    1100
    10010001
    1011000100111111101100


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

    Таблица 3.10. Поразрядные операторы

    [TD ]Название[/TD][TDheight="36"]С битами, находящимися в одинаковых разрядах $а и $b, выполняется операция дизъюнкции [/TD][TD ]$а^$b [/TD][TD ]Исключающая [/TD][TDheight="19"]Все разряды переменной $b инвертируются [/TD][TD ]$а << $b [/TD][TD ]Сдвиг влево [/TD][TD ]$а >> $b [/TD][TD ]Сдвиг вправо [/TD]
    ПримерРезультат
    $а&$b Конъюнкция С битами, находящимися в одинаковых разрядах $а и $b, выполняется операция конъюнкции
    $а|$Ь Дизъюнкция
    С битами, находящимися в одинаковых разрядах $а и $b, выполняется операция исключающей дизъюнкции
    ~$b Отрицание
    Переменной $а присваивается значение $b, сдвинутое влево на два бита
    Переменной $а присваивается значение $b, сдвинутое вправо на два бита

    Добавить сообщение
    Чтобы добавлять комментарии зарeгиcтрирyйтeсь