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 日的最新网络资源,确保信息准确性和全面性。

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注