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





