您的位置:

php运算符优先级,php 运算符优先级

本文目录一览:

php运算符优先级问题之短路现象的原理是什么?

下表按照优先级从高到低列出了运算符。同一行中的运算符具有相同优先级,此时它们的结合方向决定求值顺序。

运算符优先级

结合方向

运算符

附加信息

无 clone new clone 和 new

左 [ array()

右 ++ -- ~ (int) (float) (string) (array) (object) (bool) @ 类型和递增/递减

无 instanceof 类型

右 ! 逻辑运算符

左 * / % 算术运算符

左 + - . 算术运算符和字符串运算符

左 位运算符

无 == != === !== 比较运算符

左 位运算符和引用

左 ^ 位运算符

左 | 位运算符

左 逻辑运算符

左 || 逻辑运算符

左 ? : 三元运算符

右 = += -= *= /= .= %= = |= ^= = = = 赋值运算符

左 and 逻辑运算符

左 xor 逻辑运算符

左 or 逻辑运算符

左 , 多处用到

对具有相同优先级的运算符,左结合方向意味着将从左向右求值,右结合方向则反之。对于无结合方向具有相同优先级的运算符,该运算符有可能无法与其自身结合。

关于php 三元运算符的优先级问题。请教?

三元运算符的优先级是从右到左的,因此上面顺序是:

$i = 2;

先运行:($i == 2 ? "A" : $i == 1)

然后再运行 (? 'B' : 'C';)

假设第一个运行的结果是 $ret 那么$ret的值为A;

那么第二个可以写成

$ret?'B':'C';

因$ret的值为A,是真值,所以结果是B。

php逻辑运算符和括号哪个优先级高啊

括号中的优先级更高,括号中运算结束后才会执行逻辑运算

如: 1 == (2-1)