什么是运算符? 简单的回答可使用表达式4 + 5
等于9
。这里4
和5
被称为操作数,而+
被称为操作符(或叫运算符)。PHP语言支持以下类型的运算符。
- 算术运算符
- 比较运算符
- 逻辑(或关系)运算符
- 赋值运算符
- 条件(或三元)运算符
让我们来一个接一个地来看看上面的运算符。
1. 算术运算符
PHP语言支持以下算术运算符。假设变量A=10
,变量B=20
,则 -
运算符 | 描述 | 示例 |
---|---|---|
+ |
加法运算 | A + B 则结果为30 |
- |
减法运算 | A - B 则结果为-10 |
* |
两个数相乘 | A * B 则结果为200 |
/ |
两个数相除 | B / A 则结果为2 |
% |
模运算符,整数除法后的余数 | B / A 则结果为0 |
++ |
递增运算符,将整数值增加1 |
A++ 则结果为11 |
-- |
递减运算符,将整数值减1 |
A-- 则结果为9 |
算术运算符示例
<?php
$a = 42;
$b = 20;
$c = $a + $b;
echo "Addtion Operation Result: $c ";
$c = $a - $b;
echo "Substraction Operation Result: $c ";
$c = $a * $b;
echo "Multiplication Operation Result: $c ";
$c = $a / $b;
echo "Division Operation Result: $c ";
$c = $a % $b;
echo "Modulus Operation Result: $c ";
$c = $a++;
echo "Increment Operation Result: $c ";
$c = $a--;
echo "Decrement Operation Result: $c ";
?>
当执行上面示例代码,得到以下结果 -
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
比较运算符
PHP语言支持以下比较运算符。假设变量A=10
,变量B=20
,则 -
运算符 | 描述 | 示例 |
---|---|---|
== |
检查两个操作数的值是否相等,如果相等则条件成立。 | (A == B) 条件不成立。 |
!= |
检查两个操作数的值是否不相等,如果不相等则条件成立。 | (A != B) 则条件成立。 |
> |
检查左操作数的值是否大于右操作数的值,如果是,则条件成立。 | (A > B) 则条件不成立。 |
< |
检查左操作数的值是否小于右操作数的值,如果是,则条件成立。 | (A < B) 则条件成立。 |
>= |
检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立。 | (A >= B) 则条件不成立。 |
<= |
检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立。 | (A <= B) 则条件成立。 |
比较运算符示例
<?php
$a = 42;
$b = 20;
if( $a == $b ) {
echo "TEST1 : a is equal to b";
}else {
echo "TEST1 : a is not equal to b";
}
if( $a > $b ) {
echo "TEST2 : a is greater than b";
}else {
echo "TEST2 : a is not greater than b";
}
if( $a < $b ) {
echo "TEST3 : a is less than b";
}else {
echo "TEST3 : a is not less than b";
}
if( $a != $b ) {
echo "TEST4 : a is not equal to b";
}else {
echo "TEST4 : a is equal to b";
}
if( $a >= $b ) {
echo "TEST5 : a is either greater than or equal to b";
}else {
echo "TEST5 : a is neither greater than nor equal to b";
}
if( $a <= $b ) {
echo "TEST6 : a is either less than or equal to b";
}else {
echo "TEST6 : a is neither less than nor equal to b";
}
?>
执行上面示例代码,得到以下结果 -
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
逻辑运算符
PHP语言支持以下逻辑运算符,假设变量A=10
,变量B=20
,则 -
运算符 | 描述 | 示例 |
---|---|---|
and |
逻辑与运算符。 如果两个操作数都是TRUE ,则条件成立。 |
(A and B) 则条件成立。 |
or |
逻辑或运算符。 如果两个操作数中的任何一个不为零,则条件成立。 | (A or B) 则条件成立。 |
&& |
逻辑与运算符。 如果两个操作数都不为零,则条件成立。 | (A or B) 则条件成立。 |
// |
逻辑或运算符。 如果两个操作数中的任何一个都不为零,则条件成立。 | (A // B) 则条件成立。 |
! |
逻辑非运算符。 用于反转其操作数的逻辑状态。 如果条件成立,那么逻辑NOT 运算符将会成为假。 |
!(A && B) 则条件不成立。 |
注意:上面的逻辑或运算符正确的写法为两个竖线:||,变量
A
与变量B
的逻辑或运算应该写为(A || B)
,这里是由于文字排版所限,所以写成两个斜线://
。
逻辑运算符示例
<?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/>";
}
?>
执行上面示例代码,得到以下结果 -
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 |
赋值运算符示例
<?php
$a = 42;
$b = 20;
$c = $a + $b; /* Assignment operator */
echo "Addtion Operation Result: $c <br/>";
$c += $a; /* c value was 42 + 20 = 62 */
echo "Add AND Assigment Operation Result: $c <br/>";
$c -= $a; /* c value was 42 + 20 + 42 = 104 */
echo "Subtract AND Assignment Operation Result: $c <br/>";
$c *= $a; /* c value was 104 - 42 = 62 */
echo "Multiply AND Assignment Operation Result: $c <br/>";
$c /= $a; /* c value was 62 * 42 = 2604 */
echo "Division AND Assignment Operation Result: $c <br/>";
$c %= $a; /* c value was 2604/42 = 62*/
echo "Modulus AND Assignment Operation Result: $c <br/>";
?>
执行上面示例代码,得到以下结果 -
Addtion Operation Result: 62
Add AND Assigment 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
条件运算符
还有一个运算符称为条件运算符。它首先评估表达式的真值或假值,然后根据评估结果执行两个给定条件语句之一。 条件运算符的语法如下 -
condtion ? execute_true_expression: otherwise_expression
参考示例
<?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/>";
?>
执行上面示例代码,得到以下结果 -
TEST1 : Value of result is 20
TEST2 : Value of result is 10
运算符分类
我们上面讨论过的所有运算符可以分为以下几类 -
- 一元前缀运算符,位于单个操作数之前。
- 二进制运算符,它需要两个操作数并执行各种算术和逻辑操作。
- 条件运算符(一个三元运算符),取决于对第一个表达式的求值,它接受三个操作数并计算第二个或第三个表达式。
- 赋值运算符,赋值给一个变量。