运算符

1. 算数运算符

运算符名称例子结果
+加法$x + $y$x 与 $y 求和
-减法$x - $y$x 与 $y 的差数
*乘法$x * $y$x 与 $y 的乘积
/除法$x / $y$x 与 $y 的商数
%取模$x % $y$x 除 $y 的余数

下例展示了使用不同算数运算符的不同结果:

<?php $x=17; $y=8; echo ($x + $y); // 输出 25 echo ($x - $y); // 输出 9 echo ($x * $y); // 输出 136 echo ($x / $y); // 输出 2.125 echo ($x % $y); // 输出 1 ?>

输出结果:

25 9 136 2.125 1

2. 赋值运算符

PHP 赋值运算符用于向变量写值。

PHP 中基础的赋值运算符是 "="。这意味着右侧赋值表达式会为左侧运算数设置值。

赋值等同于描述
x = yx = y右侧表达式为左侧运算数设置值。
x += yx = x + y
x -= yx = x - y
x *= yx = x * y
x /= yx = x / y
x %= yx = x % y模数

下例展示了使用不同赋值运算符的不同结果:

<?php $x=17; echo $x; // 输出 17 $y=17; $y += 8; echo $y; // 输出 25 $z=17; $z -= 8; echo $z; // 输出 9 $i=17; $i *= 8; echo $i; // 输出 136 $j=17; $j /= 8; echo $j; // 输出 2.125 $k=17; $k %= 8; echo $k; // 输出 1 ?>

输出结果:

17 25 9 136 2.125 1

3. 字符串运算符

运算符名称例子结果
.串接$txt1 = "Hello" $txt2 = $txt1 . " world!"现在 $txt2 包含 "Hello world!"
.=串接赋值$txt1 = "Hello" $txt1 .= " world!"现在 $txt1 包含 "Hello world!"

下例展示了使用字符串运算符的结果:

<?php $a = "Hello"; $b = $a . " world!"; echo $b; // 输出 Hello world! $x="Hello"; $x .= " world!"; echo $x; // 输出 Hello world! ?>

输出结果:

Hello world! Hello world!

4. 递增/递减运算符

运算符名称描述
++$x前递增$x 加一递增,然后返回 $x
$x++后递增返回 $x,然后 $x 加一递增
--$x前递减$x 减一递减,然后返回 $x
$x--后递减返回 $x,然后 $x 减一递减

下例展示了使用不同递增/递减运算符的不同结果:

<?php $x=17; echo ++$x; // 输出 18 $y=17; echo $y++; // 输出 17 $z=17; echo --$z; // 输出 16 $i=17; echo $i--; // 输出 17 ?>

输出结果:

18 17 16 17

5. 比较运算符

PHP 比较运算符用于比较两个值(数字或字符串):

运算符名称例子结果
==等于$x == $y如果 $x 等于 $y,则返回 true。
===全等(完全相同)$x === $y如果 $x 等于 $y,且它们类型相同,则返回 true。
!=不等于$x != $y如果 $x 不等于 $y,则返回 true。
<>不等于$x <> $y如果 $x 不等于 $y,则返回 true。
!==不全等(完全不同)$x !== $y如果 $x 不等于 $y,或它们类型不相同,则返回 true。
>大于$x > $y如果 $x 大于 $y,则返回 true。
<小于$x < $y如果 $x 小于 $y,则返回 true。
>=大于或等于$x >= $y如果 $x 大于或者等于 $y,则返回 true。
<=小于或等于$x <= $y如果 $x 小于或者等于 $y,则返回 true。

下例展示了使用某些比较运算符的不同结果:

<?php $x=17; $y="17"; var_dump($x == $y); echo "<br>"; var_dump($x === $y); echo "<br>"; var_dump($x != $y); echo "<br>"; var_dump($x !== $y); echo "<br>"; $a=17; $b=8; var_dump($a > $b); echo "<br>"; var_dump($a < $b); ?>

输出结果:

bool(true) bool(false) bool(false) bool(true) bool(true) bool(false)

6. 逻辑运算符

运算符名称例子结果
and$x and $y如果 $x 和 $y 都为 true,则返回 true。
or$x or $y如果 $x 和 $y 至少有一个为 true,则返回 true。
xor异或$x xor $y如果 $x 和 $y 有且仅有一个为 true,则返回 true。
&&$x && $y如果 $x 和 $y 都为 true,则返回 true。
||$x || $y如果 $x 和 $y 至少有一个为 true,则返回 true。
!!$x如果 $x 不为 true,则返回 true。

7. 数组运算符

PHP 数组运算符用于比较数组:

运算符名称例子结果
+联合$x + $y$x 和 $y 的联合(但不覆盖重复的键)
==相等$x == $y如果 $x 和 $y 拥有相同的键/值对,则返回 true。
===全等$x === $y如果 $x 和 $y 拥有相同的键/值对,且顺序相同类型相同,则返回 true。
!=不相等$x != $y如果 $x 不等于 $y,则返回 true。
<>不相等$x <> $y如果 $x 不等于 $y,则返回 true。
!==不全等$x !== $y如果 $x 与 $y 完全不同,则返回 true。

下例展示了使用不同数组运算符的不同结果:

<?php $m = array("x" => "grape", "y" => "melon"); $n = array("z" => "berry", "w" => "kiwi"); $p = $m + $n; // $m 与 $n 的联合 var_dump($p); var_dump($m == $n); var_dump($m === $n); var_dump($m != $n); var_dump($m <> $n); var_dump($m !== $n); ?>

输出结果:

array(4) { ["x"]=> string(5) "grape" ["y"]=> string(5) "melon" ["z"]=> string(5) "berry" ["w"]=> string(4) "kiwi" } bool(false) bool(false) bool(true) bool(true) bool(true)