跳至内容

运算符

这篇讲 PHP 的七类运算符:算术、赋值、字符串、递增/递减、比较、逻辑和数组运算符。掌握运算符是编写任何逻辑的前提。

算术运算符

运算符名称示例结果
+加法$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
?>

赋值运算符

基本赋值运算符是 =,组合赋值运算符可以简化代码:

运算符等同于说明
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;
$x += 8;
echo $x;  // 25
?>

字符串运算符

PHP 中字符串拼接用 .(点号),而非 +

运算符名称示例结果
.拼接$a . " world!"将两段字符串连接
.=拼接赋值$a .= " world!"将右侧字符串追加到左侧
<?php
$a = "Hello";
$b = $a . " world!";
echo $b;  // Hello world!

$x = "Hello";
$x .= " world!";
echo $x;  // Hello world!
?>

递增 / 递减运算符

运算符名称说明
++$x前递增$x 先加 1,再返回
$x++后递增先返回 $x,再加 1
--$x前递减$x 先减 1,再返回
$x--后递减先返回 $x,再减 1
<?php
$x = 10;
echo ++$x;  // 11(先加)
echo $x++;  // 11(先输出再加,此时 $x 变为 12)
?>
前后递增/递减在独立使用时结果一样,但在表达式中"先返回还是先运算"会造成不同的结果。当你不确定时,把递增/递减单独写成一行,最稳妥。

比较运算符

比较运算符用于比较两个值,返回 truefalse

运算符名称示例说明
==等于$x == $y类型转换后相等即为 true
===全等$x === $y值和类型均相同才为 true
!= / <>不等于$x != $y类型转换后不等即为 true
!==不全等$x !== $y值或类型不同即为 true
>大于$x > $y
<小于$x < $y
>=大于等于$x >= $y
<=小于等于$x <= $y
<?php
$x = 17;
$y = "17";

var_dump($x == $y);   // true  —— 值相等
var_dump($x === $y);  // false —— 值相等但类型不同(int vs string)
var_dump($x != $y);   // false
var_dump($x !== $y);  // true  —— 类型不同
?>
尽量用 === 做比较。PHP 的松散比较(==)会做类型转换,容易产生意想不到的结果。比如 0 == "php" 在某些 PHP 版本中为 true——严格比较可以避免这类坑。

逻辑运算符

用于组合条件判断:

运算符名称示例说明
and / &&$x && $y两者都为 true 才为 true
or / ||$x || $y至少一个为 true 即为 true
xor异或$x xor $y有且仅有一个为 true 才为 true
!!$x取反

&&and 优先级高,||or 优先级高。在混合使用时建议用括号明确优先级。

数组运算符

运算符名称示例说明
+联合$x + $y合并两个数组,重复键保留左侧的值
==相等$x == $y键/值对相同即为 true
===全等$x === $y键/值对相同且顺序和类型相同
<?php
$x = ["a" => "apple", "b" => "banana"];
$y = ["c" => "orange", "d" => "peach"];

$z = $x + $y;  // ["a" => "apple", "b" => "banana", "c" => "orange", "d" => "peach"]
?>

一句话小结

PHP 最常用的四类运算符是算术、比较、逻辑和字符串拼接。记住三个重点:字符串拼接用 . 不用 +,比较尽量用 === 避免类型陷阱,++ 前和后在使用时注意区别。下一篇讲 流程控制

最后更新于