PHP: типы операторов

Предыдущая часть: “PHP: типы констант

PHP поддерживает следующие типы операторов:

  • арифметические операторы;
  • операторы сравнения;
  • логические (или реляционные) операторы;
  • операторы присваивания;
  • условные (или тернарные) операторы.

Посмотрим, что делает каждый тип.

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

Предположим, что переменная A содержит 10, а переменная B содержит 20. Тогда приведенные ниже арифметические операторы выполняют следующие операции:

  • оператор сложения (+) складывает два операнда (A + B; результат: 30);
  • оператор вычитания (-) вычитает второй операнд из первого (A-B; результат: -10);
  • оператор умножения (*) умножает один операнд на другой (A * B; результат: 200);
  • оператор деления (/) делит делимое на делитель (B / A; результат: 2);
  • оператор модуля (%) выводит остаток после целочисленного деления (B % A; результат: 0);
  • оператор инкремента (++) увеличивает целочисленное значение на единицу (A++; результат: 11);
  • оператор декремента (- -) уменьшает целочисленное значение на единицу (A- -; результат: 9).

Примеры использования арифметических операторов

Скопируйте и вставьте следующую PHP-программу в файл test.php, сохраните его в корне документа PHP-сервера и просмотрите его с помощью любого браузера.

<html>
   
   <head>
      <title>Arithmetical Operators</title>
   </head>
   
   <body>
   
      <?php
         $a = 42;
         $b = 20;
         
         $c = $a + $b;
         echo "Addtion Operation Result: $c <br/>";
         
         $c = $a - $b;
         echo "Substraction Operation Result: $c <br/>";
         
         $c = $a * $b;
         echo "Multiplication Operation Result: $c <br/>";
         
         $c = $a / $b;
         echo "Division Operation Result: $c <br/>";
         
         $c = $a % $b;
         echo "Modulus Operation Result: $c <br/>";
         
         $c = $a++; 
         echo "Increment Operation Result: $c <br/>";
         
         $c = $a--; 
         echo "Decrement Operation Result: $c <br/>";
      ?>
   
   </body>
</html>

Результат:

Addtion Operation Result(результат операции сложения): 62 
Substraction Operation Result(результат операции вычитания): 22 
Multiplication Operation Result(результат операции умножения): 840 
Division Operation Result(результат операции деления): 2.1 
Modulus Operation Result(результат операции модуля): 2 
Increment Operation Result(результат операции инкремента): 42 
Decrement Operation Result(результат операции декремента): 43

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

Предположим, что переменная A имеет значение 10, а переменная B имеет значение 20. Тогда приведенные ниже операторы сравнения выполняют следующие операции:

  • оператор равенства (==) проверяет, действительно ли значения двух операндов равны; если да, то условие становится истинным; (A == B) не является истинным;
  • оператор неравенства (!=) проверяет, действительно ли значения двух операндов не равны, если значения не равны, то условие становится истинным; (A != B) истинно;
  • оператор “больше, чем” (>) проверяет, действительно ли значение левого операнда больше, чем значение правого операнда; если да, то условие становится истинным; (A > B) не истинно;
  • оператор “меньше, чем” (< ) проверяет, действительно ли значение левого операнда меньше, чем значение правого операнда; если да, то условие становится истинным; (A < B) истинно;
  • оператор “больше или равно” (>=) проверяет, действительно ли значение левого операнда больше или равно значению правого операнда; если да, то условие становится истинным; (A >= B) не является истинным;
  • оператор “меньше или равно” (<=) проверяет, действительно ли значение левого операнда меньше или равно значению правого операнда; если да, то условие становится истинным; (A <= B) истинно.

Примеры использования операторов сравнения

Скопируйте и вставьте следующую PHP-программу в файл test.php, сохраните его в корне документа PHP-сервера и просмотрите его с помощью любого браузера.

<html>
   
   <head>
      <title>Comparison Operators</title>
   </head>
   
   <body>
      
      <?php
         $a = 42;
         $b = 20;
      
         if( $a == $b ) {
            echo "TEST1 : a is equal to b<br/>";
         }else {
            echo "TEST1 : a is not equal to b<br/>";
         }
      
         if( $a > $b ) {
            echo "TEST2 : a is greater than  b<br/>";
         }else {
            echo "TEST2 : a is not greater than b<br/>";
         }
      
         if( $a < $b ) {
            echo "TEST3 : a is less than  b<br/>";
         }else {
            echo "TEST3 : a is not less than b<br/>";
         }
      
         if( $a != $b ) {
            echo "TEST4 : a is not equal to b<br/>";
         }else {
            echo "TEST4 : a is equal to b<br/>";
         }
      
         if( $a >= $b ) {
            echo "TEST5 : a is either greater than or equal to b<br/>";
         }else {
            echo "TEST5 : a is neither greater than nor equal to b<br/>";
         }
      
         if( $a <= $b ) {
            echo "TEST6 : a is either less than or equal to b<br/>";
         }else {
            echo "TEST6 : a is neither less than nor equal to b<br/>";
         }
      ?>
      
   </body>
</html>

Результат:

TEST1: a is not equal to b
TEST2: a is greater than b
TEST3: a is not less than b
TEST4: a is not equal to b
TEST5: a is either greater than or equal to b
TEST6: a is neither less than nor equal to b

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

Предположим, что переменная A имеет значение 10, а переменная B имеет значение 20. Тогда приведенные ниже логические операторы выполняют следующие операции:

  • and (и) — логический оператор AND — если оба операнда истинны, то условие становится истинным; (A and B) истинно;
  • or (или) — логический оператор OR — если любой из двух операндов не равен нулю, то условие становится истинным; (A or B) истинно;
  • && (а также) — логический оператор AND ALSO — если оба операнда не равны нулю, то условие становится истинным; (A && B) истинно;
  • || (или же) — логический оператор OR ELSE — если любой из двух операндов не равен нулю, то условие становится истинным; (A || B) истинно;
  • ! (не) — логический оператор NOT — используется для изменения логического состояния операнда; если условие истинно, то логический оператор NOT сделает его ложным; !(A && B) ложно.

Примеры использования логических операторов

Скопируйте и вставьте следующую PHP-программу в файл test.php, сохраните его в корне документа PHP-сервера и просмотрите его с помощью любого браузера.

<html>
   
   <head>
      <title>Logical Operators</title>
   </head>
   
   <body>
      
      <?php
         $a = 42;
         $b = 0;
         
         if( $a && $b ) {
            echo "TEST1 : Both a and b are true<br/>";
         }else{
            echo "TEST1 : Either a or b is false<br/>";
         }
         
         if( $a and $b ) {
            echo "TEST2 : Both a and b are true<br/>";
         }else{
            echo "TEST2 : Either a or b is false<br/>";
         }
         
         if( $a || $b ) {
            echo "TEST3 : Either a or b is true<br/>";
         }else{
            echo "TEST3 : Both a and b are false<br/>";
         }
         
         if( $a or $b ) {
            echo "TEST4 : Either a or b is true<br/>";
         }else {
            echo "TEST4 : Both a and b are false<br/>";
         }
         
         $a = 10;
         $b = 20;
         
         if( $a ) {
            echo "TEST5 : a is true <br/>";
         }else {
            echo "TEST5 : a  is false<br/>";
         }
         
         if( $b ) {
            echo "TEST6 : b is true <br/>";
         }else {
            echo "TEST6 : b  is false<br/>";
         }
         
         if( !$a ) {
            echo "TEST7 : a is true <br/>";
         }else {
            echo "TEST7 : a  is false<br/>";
         }
         
         if( !$b ) {
            echo "TEST8 : b is true <br/>";
         }else {
            echo "TEST8 : b  is false<br/>";
         }
      ?>
      
   </body>
</html>

Результат:

TEST1: Either a or b is false
TEST2: Either a or b is false
TEST3: Either a or b is true
TEST4: Either a or b is true
TEST5: a is true
TEST6: b is true
TEST7: a is false
TEST8: b is false

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

В PHP поддерживаются следующие операторы присваивания:

  • простой оператор присваивания (=) присваивает левым операндам значения правых операндов (C = A + B, где значение A + B присвоено C);
  • оператор сложения и присваивания (+=) добавляет правый операнд к левому операнду и присваивает результат левому операнду (C += A эквивалентно C = C + A);
  • оператор вычитания и присваивания (-= ) вычитает правый операнд из левого операнда и присваивает результат левому операнду (C -= A эквивалентно C = C-A);
  • оператор умножения и присваивания (*=) умножает правый операнд на левый операнд и присваивает результат левому операнду (C *= A эквивалентно C = C * A);
  • оператор деления и присваивания (/=) делит левый операнд на правый операнд и присваивает результат левому операнду (C /= A эквивалентно C = C / A);
  • оператор модуля и присваивания (%=) вычисляет модуль из двух операндов и присваивает результат левому операнду (C %= A эквивалентен C = C % A).

Примеры использования операторов присваивания

Скопируйте и вставьте следующую PHP-программу в файл test.php, сохраните его в корне документа PHP-сервера и просмотрите его с помощью любого браузера.

<html>
   
   <head>
      <title>Assignment Operators</title>
   </head>
   
   <body>
      
      <?php
         $a = 42;
         $b = 20;
         
         $c = $a + $b;  
         echo "Addtion Operation Result: $c <br/>";
         
         $c += $a;  
         echo "Add AND Assigment Operation Result: $c <br/>";
         
         $c -= $a;
         echo "Subtract AND Assignment Operation Result: $c <br/>";
         
         $c *= $a; 
         echo "Multiply AND Assignment Operation Result: $c <br/>";
         
         $c /= $a; 
         echo "Division AND Assignment Operation Result: $c <br/>";
         
         $c %= $a;
         echo "Modulus AND Assignment Operation Result: $c <br/>";
      ?>
      
   </body>
</html>

Результат:

Addition Operation Result (результат операции сложения): 62
Add AND Assignment Operation Result (результат операции сложения и присваивания): 104
Subtract AND Assignment Operation Result (результат операции вычитания и присваивания): 62
Multiply AND Assignment Operation Result (результат операции умножения и присваивания): 2604
Division AND Assignment Operation Result (результат операции деления и присваивания): 62
Modulus AND Assignment Operation Result (результат операции модуля и присваивания): 20

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

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

Если условие истинно ? Тогда значение X : Иначе значение Y

Примеры использования условного оператора

Скопируйте и вставьте следующую PHP-программу в файл test.php, сохраните его в корне документа PHP-сервера и просмотрите его с помощью любого браузера.

<html>
   
   <head>
      <title>Arithmetical Operators</title>
   </head>
   
   <body>
   
      <?php
         $a = 10;
         $b = 20;
         
         /* If condition is true then assign a to result otheriwse b */
         $result = ($a > $b ) ? $a :$b;
         
         echo "TEST1 : Value of result is $result<br/>";
         
         /* If condition is true then assign a to result otheriwse b */
         $result = ($a < $b ) ? $a :$b;
         
         echo "TEST2 : Value of result is $result<br/>";
      ?>
   
   </body>
</html>

Это приведет к следующему результату:

TEST 1: Value of result 20
TEST 2: Value of result 10

Категории операторов

Все рассмотренные выше операторы можно разделить на следующие категории:

  • Унарные префиксные — операторы, которые предшествуют одному операнду.
  • Бинарные — операторы, которые принимают два операнда и выполняют различные арифметические и логические операции.
  • Условный (тернарный) — оператор, который принимает три операнда и оценивает либо второе, либо третье выражение в зависимости от оценки первого выражения.
  • Операторы присваивания — операторы, которые присваивают значение переменной.

Старшинство операторов PHP

Старшинство операторов определяет группирование членов в выражении. Это влияет на то, как будет оцениваться выражение. Некоторые операторы имеют более высокий приоритет, чем другие; например, оператор умножения имеет более высокий приоритет, чем оператор сложения.

Рассмотрим для примера выражение x = 7 + 3 * 2. Здесь x присваивается 13, а не 20, поскольку оператор * имеет более высокий приоритет, чем +, поэтому сначала выполняется умножение 3*2, а затем результат складывается с 7.

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

  • унарные (! ++ — ) — справа налево;
  • мультипликативные (* / %) — слева направо;
  • аддитивные (+ -) — слева направо;
  • реляционные (< <= > >=) — слева направо;
  • операторы сравнения (== !=) — слева направо;
  • логическое (AND &&) — слева направо;
  • логическое (OR ||) — слева направо;
  • условный (?:) — справа налево;
  • операторы присваивания (= += -= *= /= %=) — справа налево.

В выражении операторы с более высоким старшинством будут оцениваться первыми.

Читайте также:

Читайте нас в TelegramVK

Предыдущая статьяСтруктуры данных: массивы
Следующая статьяВизуальная иерархия в дизайне