运算符用于对单个操作数或两个操作数执行。PHP中的运算符可以分为以下几类:

  1. 算术运算符
  2. 赋值运算符
  3. 比较运算符
  4. 递增/递减运算符
  5. 逻辑运算符
  6. 位操作符
  7. 其他操作符

PHP算术运算符

算术运算符用于对两个操作数执行算术

操作符名字描述
+两个值相加
-两个值相减
*两个值相乘
/将一个值除以另一个值
**指数/幂返回第一个操作数的第二个操作数次方
%取余返回整数的余数
示例

PHP 赋值运算符

赋值运算符用于将外围表达式的值赋给阀门数。

操作符表达式等价于例子
=a = 5a = 5示例
+=a += ba = a + b
-=a -= ba = a - b
*=a *= ba = a * b
/=a /= ba = a / b
**=a **= ba = a ** b
%=a %= ba = a % b
&=a &= ba = a & b更多信息
|=a | = ba = a | b更多信息
^=a ^ = ba = a ^ b更多信息
>>=a>>=ba = a>>> b更多信息
<<=a <<= ba = a <更多信息

PHP 比较运算符

比较运算符用于比较两个操作数的值。当值匹配时返回 true,当值不匹配时返回 false。

操作符描述
==等于:检查两个操作数的值,如果相同则返回 true。
!=不等于:检查两个操作数的值,如果不相同则返回 true。
<>
===相同:检查两个操作数的值和数据类型并返回如果相同则为 true。
!==不相同:检查两个操作数的值和数据类型并返回如果不相同,则返回 true。
>大于:检查两个操作数的值,如果存在则返回 true第一个操作数的值大于第二个操作数的值。
<小于:检查值两个操作数的值,如果第一个操作数的值小于第二个操作数的值,则返回 true。
>=大于或等于:检查两个操作数的值,如果第一个操作数的值大于或等于第二个操作数的值,则返回 true。
<=小于或等于:检查两个操作数的值,如果第一个操作数的值小于或等于第二个操作数的值,则返回 true。
<=>Spaceship:检查两个操作数的值,并根据两个操作数的值返回值:
  • 如果第一个操作数的值小于第二个操作数的值,则返回 -1。
  • 如果两个操作数的值相等,则返回 0。
  • 返回如果第一个操作数的值大于第二个操作数的值,则为 1。
示例

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
  • 如果 exp1,$x 的值为 exp2为 TRUE。
  • 如果 exp1 为 FALSE,则 $x 的值为 exp3。
??空合并$x = exp1 ?? exp2
  • 如果 exp1 存在且不为 NULL,则 $x 的值为 exp1。
  • 如果 exp1 不存在或为 NULL,$x 的值为 exp2。

PHP 运算符优先级

运算符优先级运算顺序)是一组规则,反映了首先执行哪些过程以计算给定表达式的约定。

例如,乘法的优先级高于加法。因此,表达式 1 + 2 × 3 被解释为具有值 1 + (2 × 3) = 7,而不是 (1 + 2) × 3 = 9。当表达式中使用指数时,它优先于两者加法和乘法。因此,3 + 52 = 28 和 3 × 52 = 75。

下表列出了 PHP 运算符的优先级和结合性。运算符按优先级降序从上到下列出。优先级较高的运算符先于优先级相对较低的运算符进行计算。当运算符具有相同优先级时,运算符的结合性决定了运算的执行顺序。

优先级运算符描述关联性
25clone克隆运算符NA
new新运算符
24**求幂从右到左
23++a --a前缀递增,前缀递减NA
a++ a--后缀自增、后缀自减
+a -a一元加,一元减
~按位取非
(int)  (float) (string) (array) (object) (bool)类型转换
@错误控制运算符
22instanceof类型运算符从左到右
21!逻辑非NA
20*  /  %乘法、除法、余数从左到右
19+  -  .加法、减法、连接运算符(. PHP 8.0.0 之前的版本)
18<<  >>按位左移和右移
17.连接运算符 (从 PHP 8.0.0 开始)
16<  <=  >  >=小于、小于或等于、大于、大于或等于非关联
15==  !=平等、不平等
===  !==严格平等、严格不平等
<>  <=>不等式,宇宙飞船运算符
14&按位与和引用运算符从左到右
13^按位异或
12|按位或
11&&逻辑与
10||逻辑或
9??空合并运算符从右到左
8a?b:c条件(三元)运算符非关联(PHP 之前从左到右关联8.0.0)
7=直接赋值从右到左
+=  -=  *=  /=  %=  **=通过加、减、乘、除、求余和求幂进行复合赋值
.=  ??=连接赋值运算符、空合并赋值运算符
<<=  >>=按位左移和右移复合赋值
&=  ^=  |=按位 AND、XOR 和 OR 进行复合赋值
6yield fromyieldNA
5yieldyield
4print打印
3and逻辑与从左到右
2xor逻辑异或
1or逻辑或