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