【知识点】运算符

运算符优先级

递增/递减>!>算数运算符>大小比较>(不)相等比较>引用>位运算符(^)>位运算符(|)>逻辑与>逻辑或>三目>赋值>and>xor>or

结合方向 运算符 附加信息
clone new clone 和 new
[ array()
** 算术运算符
++ ~ (int) (float) (string) (array) (object) (bool) @ 类型和递增/递减
instanceof 类型
! 逻辑运算符
* / % 算术运算符
+ - . 算术运算符和字符串运算符
<< >> 位运算符
< <= > >= 比较运算符
== != === !== <> <=> 比较运算符
& 位运算符和引用
^ 位运算符
| 位运算符
&& 逻辑运算符
|| 逻辑运算符
?? 比较运算符
? : ternary
right = += -= *= **= /= .= %= &= |= ^= <<= >>= 赋值运算符
and 逻辑运算符
xor 逻辑运算符
or 逻辑运算符

算术运算符

例子 名称 结果
-$a 取反 $a 的负值。
$a + $b 加法 $a$b 的和。
$a – $b 减法 $a$b 的差。
$a * $b 乘法 $a$b 的积。
$a / $b 除法 $a 除以 $b 的商。
$a % $b 取模 $a 除以 $b 的余数。
$a ** $b Exponentiation Result of raising $a to the $b‘th power. Introduced in PHP 5.6.

赋值运算符
位运算符

例子 名称 结果
$a & $b And(按位与) 将把 $a$b 中都为 1 的位设为 1。
$a | $b Or(按位或) 将把 $a$b 中任何一个为 1 的位设为 1。
$a ^ $b Xor(按位异或) 将把 $a$b 中一个为 1 另一个为 0 的位设为 1。
~ $a Not(按位取反) $a 中为 0 的位设为 1,反之亦然。
$a << $b Shift left(左移) $a 中的位向左移动 $b 次(每一次移动都表示“乘以 2”)。
$a >> $b Shift right(右移) $a 中的位向右移动 $b 次(每一次移动都表示“除以 2”)。

比较运算符

例子 名称 结果
$a == $b 等于 TRUE,如果类型转换后 $a 等于 $b
$a === $b 全等 TRUE,如果 $a 等于 $b,并且它们的类型也相同。
$a != $b 不等 TRUE,如果类型转换后 $a 不等于 $b
$a <> $b 不等 TRUE,如果类型转换后 $a 不等于 $b
$a !== $b 不全等 TRUE,如果 $a 不等于 $b,或者它们的类型不同。
$a < $b 小与 TRUE,如果 $a 严格小于 $b
$a > $b 大于 TRUE,如果 $a 严格大于 $b
$a <= $b 小于等于 TRUE,如果 $a 小于或者等于 $b
$a >= $b 大于等于 TRUE,如果 $a 大于或者等于 $b
$a <=> $b 太空船运算符(组合比较符) $a小于、等于、大于$b时 分别返回一个小于、等于、大于0的integer 值。 PHP7开始提供.
$a ?? $b ?? $c NULL 合并操作符 从左往右第一个存在且不为 NULL 的操作数。如果都没有定义且不为 NULL,则返回 NULL。PHP7开始提供。

错误控制运算符

@放在一个php表达式之前,会忽略所有的错误信息
执行运算符
递增/递减运算符
1、递增、递减不影响布尔值
2、递减null没有效果、递增null为1
3、递增递减在前面就先运算再返回值,否则先返回值再运算
逻辑运算符
字符串运算符
数组运算符

例子 名称 结果
$a + $b 联合 $a$b 的联合。
$a == $b 相等 如果 $a$b 具有相同的键/值对则为 TRUE
$a === $b 全等 如果 $a$b 具有相同的键/值对并且顺序和类型都相同则为 TRUE
$a != $b 不等 如果 $a 不等于 $b 则为 TRUE
$a <> $b 不等 如果 $a 不等于 $b 则为 TRUE
$a !== $b 不全等 如果 $a 不全等于 $b 则为 TRUE

类型运算符