PHP 运算符

回到笔记索引

算术运算符

-$a 取反

$a + $b 加法

$a - $b 减法

$a * $b 乘法

$a / $b 除法

$a % $b 取模

$a ** $b 求幂(PHP 5.6)

  • 除法运算符总是返回浮点数

  • 取模运算符的操作数在运算之前都会转换成整数,和被除数的符号(正负号)相同

  • 亦有 数学函数 供使用

数组运算符

  • $a + $b 联合:将后者接在前者后面,并忽略后者与前者相同部分

  • $a == $b 相等:如果二者数组元素相同

  • $a === $b 全等:如果二者完全相同,包括顺序

  • $a != $b 不等

  • $a <> $b 不等

  • $a !== $b 不全等

位运算符

  • $a & $b And(按位与)b

  • $a | $b Or(按位或)

  • $a ^ $b Xor(按位异或)

  • ~ $a Not(按位取反)

  • $a << $b Shift left(左移 乘二)

  • $a >> $b Shift right(右移 除二)

比较运算符

  • $a == $b 等于

  • $a === $b 全等

  • $a != $b 不等

  • $a <> $b 不等

  • $a !== $b 不全等

  • $a < $b 小与

  • $a > $b 大于

  • $a <= $b 小于等于

  • $a >= $b 大于等于

  • $a <=> $b 结合比较运算符 当$a 小于、等于、大于 than $b 时 分别返回一个小于、等于、大于 0 的 integer 值(PHP7)

不使用全(不)等时会存在自动转换:

  • nullstringstring 比较:将 NULL 转换为 "",进行数字或词汇比较

  • boolnull 与 任何其它类型 比较:转换为 boolFALSE < TRUE

  • object 与 object 比较:内置类可以定义自己的比较,不同类不能比较,相同类和数组同样方式比较属性(PHP 4 中),PHP 5 有其自己的说明

  • string,resource 或 number 与 string,resource 或 number 比较:将字符串和资源转换成数字,按普通数学比较

  • array 与 array 比较:具有较少成员的数组较小,如果运算数 1 中的键不存在于运算数 2 中则数组无法比较,否则挨个值比较(见下例)

  • object 与 任何其它类型 比较:object 总是更大

  • array 与 任何其它类型 比较:array 总是更大

三元运算符

表达式 (expr1) ? (expr2) : (expr3)expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3

表达式 expr1 ?: expr3 在 expr1 求值为 TRUE 时返回 expr1,否则返回 expr3(PHP 5.3)

合并运算符

当 expr1 为 NULL,表达式 (expr1) ?? (expr2) 等同于 expr2,否则为 expr1。

错误控制运算符

PHP 支持一个错误控制运算符:@;当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉。

对新手来说一个简单的规则就是:如果能从某处得到值,就能在它前面加上 @ 运算符

执行运算符

PHP 支持一个执行运算符:反引号,PHP 将尝试将反引号中的内容作为 shell 命令来执行,并将其输出信息返回

自增减运算符

  • ++$a 先增
  • $a++ 后增
  • --$a 前减
  • $a-- 后减

在处理字符变量的算数运算时例如,在 PHP 中 $a = 'Z'; $a++; 将把 $a 变成 'AA';字符变量只能递增,不能递减,并且只支持纯字母(a-z 和 A-Z)

逻辑运算符

  • $a and $b And(逻辑与)

  • $a or $b Or(逻辑或)

  • $a xor $b Xor(逻辑异或)

  • ! $a Not(逻辑非)

  • $a && $b And(逻辑与)

  • $a || $b Or(逻辑或)

与、或有两种表达,优先级不同,and or 垫底


存在如下操作:

$a = b() or c()

如果 b() 返回 false 则 c() 才会执行

运算符

  • 运算符优先级

  • 算术运算符

  • 赋值运算符

=+=-=*=

  • 位运算符

  • 比较运算符

  • 错误控制运算符

  • 执行运算符

  • 递增/递减运算符

  • 逻辑运算符

  • 字符串运算符

  • 数组运算符

  • 类型运算符

instanceof 用于确定一个 PHP 变量是否属于某一类 class 的实例

字符串运算符

  • . 连接运算符
  • .= 连接赋值运算符,与 += -= 类似

运算符优先级

https://www.php.net/manual/zh/language.operators.precedence.php