Источник: Nuances of Programming
Предыдущая часть: “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 ||) — слева направо;
- условный (?:) — справа налево;
- операторы присваивания (= += -= *= /= %=) — справа налево.
В выражении операторы с более высоким старшинством будут оцениваться первыми.
Читайте также: