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



Книга 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 ||) — слева направо;
  • условный (?:) — справа налево;
  • операторы присваивания (= += -= *= /= %=) — справа налево.

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


664   0  

Comments

    Ничего не найдено.