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)
不使用全(不)等时会存在自动转换:
-
null
或string
与string
比较:将NULL
转换为""
,进行数字或词汇比较 -
bool
或null
与 任何其它类型 比较:转换为bool
,FALSE
<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