运算符用于对单个操作数或两个操作数执行。PHP中的运算符可以分为以下几类:
- 算术运算符
- 赋值运算符
- 比较运算符
- 递增/递减运算符
- 逻辑运算符
- 位操作符
- 其他操作符
PHP算术运算符
算术运算符用于对两个操作数执行算术
操作符 | 名字 | 描述 |
---|---|---|
+ | 加 | 两个值相加 |
- | 减 | 两个值相减 |
* | 乘 | 两个值相乘 |
/ | 除 | 将一个值除以另一个值 |
** | 指数/幂 | 返回第一个操作数的第二个操作数次方 |
% | 取余 | 返回整数的余数 |
PHP 赋值运算符
赋值运算符用于将外围表达式的值赋给阀门数。
操作符 | 表达式 | 等价于 | 例子 |
---|---|---|---|
= | a = 5 | a = 5 | 示例 |
+= | a += b | a = a + b | |
-= | a -= b | a = a - b | |
*= | a *= b | a = a * b | |
/= | a /= b | a = a / b | |
**= | a **= b | a = a ** b | |
%= | a %= b | a = a % b | |
&= | a &= b | a = a & b | 更多信息 |
|= | a | = b | a = a | b | 更多信息 |
^= | a ^ = b | a = a ^ b | 更多信息 |
>>= | a>>=b | a = a>>> b | 更多信息 |
<<= | a <<= b | a = a < | 更多信息 |
PHP 比较运算符
比较运算符用于比较两个操作数的值。当值匹配时返回 true,当值不匹配时返回 false。
操作符 | 描述 |
---|---|
== | 等于:检查两个操作数的值,如果相同则返回 true。 |
!= | 不等于:检查两个操作数的值,如果不相同则返回 true。 |
<> | |
=== | 相同:检查两个操作数的值和数据类型并返回如果相同则为 true。 |
!== | 不相同:检查两个操作数的值和数据类型并返回如果不相同,则返回 true。 |
> | 大于:检查两个操作数的值,如果存在则返回 true第一个操作数的值大于第二个操作数的值。 |
< | 小于:检查值两个操作数的值,如果第一个操作数的值小于第二个操作数的值,则返回 true。 |
>= | 大于或等于:检查两个操作数的值,如果第一个操作数的值大于或等于第二个操作数的值,则返回 true。 |
<= | 小于或等于:检查两个操作数的值,如果第一个操作数的值小于或等于第二个操作数的值,则返回 true。 |
<=> | Spaceship:检查两个操作数的值,并根据两个操作数的值返回值:
|
PHP 自增/自减运算符
自增和自减运算符用于增加和减少变量的值。
操作员 | 名称 | 描述 | 示例 |
---|---|---|---|
++$x | 预自增 | 将 $x 的值加 1,然后返回 $x。 | 示例 |
$x++ | 后置增量 | 返回$x,然后将$x的值增加1。 | |
--$x | 预减 | 将 $x 的值减 1,然后返回 $x。 | 示例 |
$x-- | 后减 | 返回$x,然后将$x的值减1。 |
PHP 逻辑运算符
逻辑运算符用于组合两个或多个条件。
运算符 | 名称 | 描述 |
---|---|---|
和 | 和 | 当所有条件都成立时返回 true |
&& | ||
或 | OR | 任意条件成立时返回 true |
|| | ||
xor | 异或 | 当任何一个条件为真(但不是同时为真)时返回 true |
! | NOT | 给定条件不成立时返回 true |
PHP 位运算符
位运算符用于对两个操作数执行按位运算。
操作符 | 名称 | 说明 | 更多信息 |
---|---|---|---|
& | AND | 如果两个操作数中同一位置的两个位均为 1,则返回 1,否则返回 0 | 更多信息 |
| | 或 | 退货如果两个操作数中相同位置的两个位之一为 1,则返回 1,否则返回 0 | 更多信息 |
^ | XOR | 如果两个操作数中同一位置的两位中只有一位为 1,则返回 1,否则返回 0 | 更多信息 |
~ | 不 | 全部反转位 | 更多信息 |
>> | 右移 | 左操作数向右移动右操作数中存在的位数 | 更多信息 |
<< | 左移 | 左操作数值向左移动右操作数值的位数操作数 | 更多信息 |
PHP杂项运算符
下表描述了 PHP 支持的其他运算符:
运算符 | 名称 | 示例 |
---|---|---|
?: | 三元 | $x = exp1 ? exp2 : exp3
|
?? | 空合并 | $x = exp1 ?? exp2
|
PHP 运算符优先级
运算符优先级(运算顺序)是一组规则,反映了首先执行哪些过程以计算给定表达式的约定。
例如,乘法的优先级高于加法。因此,表达式 1 + 2 × 3 被解释为具有值 1 + (2 × 3) = 7,而不是 (1 + 2) × 3 = 9。当表达式中使用指数时,它优先于两者加法和乘法。因此,3 + 52 = 28 和 3 × 52 = 75。
下表列出了 PHP 运算符的优先级和结合性。运算符按优先级降序从上到下列出。优先级较高的运算符先于优先级相对较低的运算符进行计算。当运算符具有相同优先级时,运算符的结合性决定了运算的执行顺序。
优先级 | 运算符 | 描述 | 关联性 |
---|---|---|---|
25 | clone | 克隆运算符 | NA |
new | 新运算符 | ||
24 | ** | 求幂 | 从右到左 |
23 | ++a --a | 前缀递增,前缀递减 | NA |
a++ a-- | 后缀自增、后缀自减 | ||
+a -a | 一元加,一元减 | ||
~ | 按位取非 | ||
(int) (float) (string) (array) (object) (bool) | 类型转换 | ||
@ | 错误控制运算符 | ||
22 | instanceof | 类型运算符 | 从左到右 |
21 | ! | 逻辑非 | NA |
20 | * / % | 乘法、除法、余数 | 从左到右 |
19 | + - . | 加法、减法、连接运算符(. PHP 8.0.0 之前的版本) | |
18 | << >> | 按位左移和右移 | |
17 | . | 连接运算符 (从 PHP 8.0.0 开始) | |
16 | < <= > >= | 小于、小于或等于、大于、大于或等于 | 非关联 |
15 | == != | 平等、不平等 | |
=== !== | 严格平等、严格不平等 | ||
<> <=> | 不等式,宇宙飞船运算符 | ||
14 | & | 按位与和引用运算符 | 从左到右 |
13 | ^ | 按位异或 | |
12 | | | 按位或 | |
11 | && | 逻辑与 | |
10 | || | 逻辑或 | |
9 | ?? | 空合并运算符 | 从右到左 |
8 | a?b:c | 条件(三元)运算符 | 非关联(PHP 之前从左到右关联8.0.0) |
7 | = | 直接赋值 | 从右到左 |
+= -= *= /= %= **= | 通过加、减、乘、除、求余和求幂进行复合赋值 | ||
.= ??= | 连接赋值运算符、空合并赋值运算符 | ||
<<= >>= | 按位左移和右移复合赋值 | ||
&= ^= |= | 按位 AND、XOR 和 OR 进行复合赋值 | ||
6 | yield from | yield | NA |
5 | yield | yield | |
4 | 打印 | ||
3 | and | 逻辑与 | 从左到右 |
2 | xor | 逻辑异或 | |
1 | or | 逻辑或 |