跳到主要内容

PHP 操作符

PHP 操作符是对一个或多个对象进行操作的符号。

PHP 的操作符借鉴很多 Perl 和 C。

操作符全表(官方参考)

结合方向运算符附加信息
不适用clone newclone 和 new
右**算术运算符
不适用+ - ++ -- ~ (int) (float) (string) (array) (object) (bool) @算术 (一元 + 和 -), 递增/递减, 按位, 类型转换 和 错误控制
左instanceof类型
不适用!逻辑运算符
左* / %算术运算符
左+ - .算数 (二元 + 和 -), array 和 string (. PHP 8.0.0 前可用)
左<< >>位运算符
左.string (PHP 8.0.0 起可用)
无< <= > >=比较运算符
无== != === !== <> <=>比较运算符
左&位运算符 和 引用
左^位运算符
左``
左&&逻辑运算符
左`
右??null 合并运算符
无关联? :三元运算符 (PHP 8.0.0 之前左联)
右= += -= *= **= /= .= %= &= |= ^= <<= >>= ??=赋值运算符
不适用yield fromyield from
不适用yieldyield
不适用printprint
左and逻辑运算符
左xor逻辑运算符
左or逻辑运算符

几个特殊的操作符​

操作符操作
new创建新对象
clone创建新对象
@错误屏蔽
instanceof类型测试
yield fromyield from
yieldyield
printprint

操作符的优先级​

操作符在表达式中的计算顺序取决于相对优先级。

作为一个多语言程序员,在不熟悉新语言又没时间详细了解时,可以采用加括号法,这样只需要记忆一个知识点,先乘除,后加减,其余加括号。

操作符的结合性​

两个同等优先级的操作符,看左结合和还是右结合,左结合即由左向右计算。

隐式转化​

这是一个争议特性。

我们的习惯是,能显式转化时,尽量显式转化,这样可以避免“埋雷”。

举个例子来说 1 . 3.14,看起来像是写错的数,但最后这个表达式从数变成了字符串 "13.14"