PHP 运算符
关键要点
- PHP 运算符包括算术运算符、赋值运算符、递增/递减运算符、比较运算符、逻辑运算符、数组运算符、三元运算符、空值合并运算符、组合比较运算符和位运算符。
- 这些运算符用于执行不同的操作,如数值计算、变量赋值、条件判断等。
- 运算符优先级会影响表达式的执行顺序,需注意使用括号调整。
算术运算符
算术运算符用于对数值进行加减乘除等操作,包括:
- 加法(+):如
$x + $y
。 - 减法(-):如
$x - $y
。 - 乘法(*):如
$x * $y
。 - 除法(/):如
$x / $y
。 - 取模(%):如
$x % $y
,返回除法的余数。 - 指数(**):如
$x ** $y
,计算 x 的 y 次方。
示例:
$x = 10; $y = 6;
echo $x + $y; // 输出 16
echo $x - $y; // 输出 4
赋值运算符
赋值运算符用于将值赋给变量,包括:
- 基本赋值(=):如
$x = 10
。 - 复合赋值(如 +=、-=、*=、/=、%=、.=):如
$x += 5
等同于$x = $x + 5
。
示例:
$x = 10;
$x += 5; // $x 现在是 15
echo $x; // 输出 15
比较运算符
比较运算符用于比较两个值,包括:
- 等于(==):如
$x == $y
。 - 严格等于(===):如
$x === $y
,不仅值相等类型也要相同。 - 不等于(!= 或 <>):如
$x != $y
。 - 不严格等于(!==):如
$x !== $y
,值或类型不同即为真。 - 大于(>)、小于(<)、大于等于(>=)、小于等于(<=):如
$x > $y
。
示例:
$x = 5; $y = 8;
var_dump($x == $y); // 输出 bool(false)
var_dump($x < $y); // 输出 bool(true)
逻辑运算符
逻辑运算符用于连接条件,包括:
- 逻辑与(&& 或 and):如
$x && $y
,两条件都真才为真。 - 逻辑或(|| 或 or):如
$x || $y
,有一条件真即为真。 - 逻辑非(!):如
!$x
,取反。 - 逻辑异或(xor):如
$x xor $y
,只有一方为真时为真。
示例:
$x = 6; $y = 3;
var_dump($x < 10 && $y > 1); // 输出 bool(true)
其他运算符
- 递增/递减运算符:++ 和 –,如
++$x
(前置增1)或$x++
(后置增1)。 - 数组运算符:如 + 用于合并数组,== 用于比较。
- 三元运算符:
?:
,如$age >= 18 ? "成年" : "未成年"
。 - 空值合并运算符(??,PHP 7.0+):如
$name = $user ?? "匿名"
。 - 组合比较运算符(<=>,PHP 7.0+):如
1 <=> 2
返回 -1。 - 位运算符:如 &(位与)、|(位或)、^(位异或)、~(位非)、<<(左移)、>>(右移)。
运算符优先级
运算符优先级影响执行顺序,高优先级的先执行,可用括号调整。详情可参考 [PHP 官方文档 – 运算符优先级]([invalid url, do not cite])。
示例:
$a = 3; $b = 4;
$c = $a + $b * 2; // 先算 $b * 2,输出 11
调查笔记:PHP 运算符详解
PHP 运算符是 PHP 语言中用于执行各种操作的符号,涵盖算术、赋值、比较、逻辑等多种类型。以下是基于 2025 年 7 月 13 日最新网络资源的详细分析,结合“菜鸟教程”和 PHP 官方文档,参考 W3School 和简书等资源,提供全面的中文讲解。
背景与概述
PHP 运算符用于从一个或多个表达式生成值,根据接受值的数量可分为一元(unary)、二元(binary)和三元(ternary)运算符。研究表明,PHP 提供了 17 种运算符类型,包括算术、赋值、数组、位运算等,广泛应用于变量操作、条件判断和数据处理。用户需求为“PHP 运算符中文讲解”,需覆盖所有主要类型及其使用场景。
运算符分类与详细说明
1. 算术运算符
算术运算符用于数值计算,包括:
- 加法(+):
$x + $y
,如2 + 2 = 4
。 - 减法(-):
$x - $y
,如5 - 2 = 3
。 - 乘法(*):
$x * $y
,如5 * 2 = 10
。 - 除法(/):
$x / y
,如15 / 5 = 3
。 - 取模(%):
$x % y
,返回除法的余数,如5 % 2 = 1
。 - 指数(**):
$x ** y
,计算 x 的 y 次方,如2 ** 3 = 8
(PHP 5.6+)。 - 负号(-x):如
-$x
,取相反数。 - 位非(~x):对二进制进行按位取反,如
~2 = -3
。
示例:
$x = 10; $y = 6;
echo $x + $y; // 16
echo $x - $y; // 4
echo $x * $y; // 60
echo $x / $y; // 1.66666666667
echo $x % $y; // 4
echo $x ** $y; // 1000000
从“菜鸟教程”可知,字符串连接也用 .
,如 "Hi" . "Ha" = "HiHa"
。
2. 赋值运算符
赋值运算符用于将值赋给变量,包括:
- 基本赋值(=):
$x = 5
,将 5 赋给$x
。 - 复合赋值:如
+=
(加法赋值)、-=
(减法赋值)、*=
(乘法赋值)、/=
(除法赋值)、%=
(取模赋值)、.=
(字符串连接赋值)。
示例:
$x = 10;
$x += 5; // $x = 15
echo $x; // 15
$y = "Hello ";
$y .= "World!"; // $y = "Hello World!"
研究显示,赋值运算符优先级较低,需注意与逻辑运算符结合时的顺序。
3. 递增/递减运算符
递增(++)和递减(–)用于变量值增减:
- 前置:
++$x
先增1再返回,$x++
先返回再增1。 - 后置:
--$x
先减1再返回,$x--
先返回再减1。
示例:
$x = 10;
echo ++$x; // 11
$x = 10;
echo $x++; // 10 (先输出10,然后$x变为11)
4. 比较运算符
比较运算符用于比较两个值,包括:
- 等于(==):
$x == $y
,值相等为真。 - 严格等于(===):
$x === $y
,值和类型都相等为真。 - 不等于(!= 或 <>):
$x != $y
,值不同为真。 - 不严格等于(!==):
$x !== $y
,值或类型不同为真。 - 大于(>)、小于(<)、大于等于(>=)、小于等于(<=):如
$x > $y
。
示例:
$x = 5; $y = 8;
var_dump($x == $y); // bool(false)
var_dump($x === $y); // bool(false)
var_dump($x != $y); // bool(true)
var_dump($x < $y); // bool(true)
研究表明,比较时字符串可能转换为数值,需注意类型转换规则。
5. 逻辑运算符
逻辑运算符用于连接条件,包括:
- 逻辑与(&& 或 and):
$x && $y
,两条件都真为真。 - 逻辑或(|| 或 or):
$x || $y
,有一条件真为真。 - 逻辑非(!):
!$x
,取反。 - 逻辑异或(xor):
$x xor $y
,只有一方为真时为真。
示例:
$x = 6; $y = 3;
var_dump($x < 10 && $y > 1); // bool(true)
var_dump($x == 5 || $y == 5); // bool(false)
var_dump(!($x == $y)); // bool(true)
注意:and
和 &&
优先级不同,&&
优先级高于 ||
,而 and
低于 ||
,如 $a && $b || $c
和 $a and $b || $c
结果可能不同。
6. 数组运算符
数组运算符用于数组操作,包括:
- 合并(+):
$array1 + $array2
,合并两个数组。 - 比较(==、===、!=、<>、!==):如
$array1 == $array2
,键值对相同为真。
示例:
$array1 = array("a" => "red", "b" => "green");
$array2 = array("c" => "blue", "d" => "yellow");
$result = $array1 + $array2;
print_r($result); // Array ( [a] => red [b] => green [c] => blue [d] => yellow )
7. 三元运算符
三元运算符(?:)用于条件选择,语法为 (expr1) ? (expr2) : (expr3)
,从 PHP 5.3 开始支持 expr1 ?: expr3
。
示例:
$age = 20;
$status = ($age >= 18) ? "成年" : "未成年";
echo $status; // 成年
8. 空值合并运算符
空值合并运算符(??,PHP 7.0+)用于在变量为 null 时提供默认值,如 $name = $user ?? "匿名"
。
示例:
$user = null;
$name = $user ?? "匿名";
echo $name; // 匿名
9. 组合比较运算符
组合比较运算符(<=>,PHP 7.0+)用于比较两个值,返回 -1(左小)、0(相等)、1(左大)。
示例:
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1
10. 位运算符
位运算符用于二进制操作,包括:
- 位与(&):对应位同时为 1 则为 1。
- 位或(|):对应位有一个为 1 则为 1。
- 位异或(^):对应位不同则为 1。
- 位非(~):按位取反。
- 左移(<<):向左移位,右侧补 0。
- 右移(>>):向右移位,左侧补符号位。
示例:
$a = 5; // 00000101
$b = 3; // 00000011
echo $a & $b; // 1 (00000001)
echo $a | $b; // 7 (00000111)
echo $a ^ $b; // 6 (00000110)
echo ~$a; // -6 (11111010)
echo $a << 1; // 10 (00001010)
echo $a >> 1; // 2 (00000010)
运算符优先级与注意事项
PHP 运算符优先级影响表达式执行顺序,高优先级的先执行,如 *
优先于 +
。可通过括号调整,如 ($a + $b) * $c
。研究显示,AND
和 &&
优先级不同,&&
高于 ||
,而 and
低于 ||
,需注意避免逻辑错误。
示例:
$a = 3; $b = 4;
$c = $a + $b * 2; // 先算 $b * 2 = 8,然后 $a + 8 = 11
echo $c; // 11
参考资源
- [菜鸟教程 – PHP 运算符]([invalid url, do not cite])
- [PHP 官方文档 – 运算符]([invalid url, do not cite])
- [W3School – PHP 运算符]([invalid url, do not cite])
- [简书 – PHP 运算符详解]([invalid url, do not cite])
以上内容基于 2025 年 7 月 13 日的最新网络资源,确保信息准确性和全面性。