运算符
这篇讲 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 = y | x = y | 赋值 |
x += y | x = x + y | 加后赋值 |
x -= y | x = x - y | 减后赋值 |
x *= y | x = x * y | 乘后赋值 |
x /= y | x = x / y | 除后赋值 |
x %= y | x = 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)
?>
前后递增/递减在独立使用时结果一样,但在表达式中"先返回还是先运算"会造成不同的结果。当你不确定时,把递增/递减单独写成一行,最稳妥。
比较运算符
比较运算符用于比较两个值,返回 true 或 false:
| 运算符 | 名称 | 示例 | 说明 |
|---|---|---|---|
== | 等于 | $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 最常用的四类运算符是算术、比较、逻辑和字符串拼接。记住三个重点:字符串拼接用 . 不用 +,比较尽量用 === 避免类型陷阱,++ 前和后在使用时注意区别。下一篇讲 流程控制。
最后更新于