php中的逻辑运算符优先级问题(php 运算符优先级)

本文目录一览:

php中的运算符优先级是什么样的

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

运算符优先级

结合方向

运算符

附加信息

clone new

clone 和 new

[

array()

**

算术运算符

++

~

(int)

(float)

(string)

(array)

(object)

(bool)

@

类型和递增/递减

instanceof

类型

!

逻辑运算符

*

/

%

算术运算符

+

.

算术运算符和字符串运算符

位运算符

=

=

比较运算符

==

!=

===

!==

=

比较运算符

位运算符和引用

^

位运算符

|

位运算符

逻辑运算符

||

逻辑运算符

??

比较运算符

? :

ternary

right

=

+=

-=

*=

**=

/=

.=

%=

=

|=

^=

=

=

赋值运算符

and

逻辑运算符

xor

逻辑运算符

or

逻辑运算符

Example #1 结合方向

?php

$a = 3 * 3 % 5; // (3 * 3) % 5 = 4

// ternary operator associativity differs from C/C++

$a = true ? 0 : true ? 1 : 2; // (true ? 0 : true) ? 1 : 2 = 2

$a = 1;

$b = 2;

$a = $b += 3; // $a = ($b += 3) – $a = 5, $b = 5

?

Operator precedence and associativity only determine how expressions

are grouped, they do not specify an order of evaluation. PHP does not

(in the general case) specify in which order an expression is evaluated

and code that assumes a specific order of evaluation should be avoided,

because the behavior can change between versions of PHP or depending on

the surrounding code.

Example #2 Undefined order of evaluation

?php

$a = 1;

echo $a + $a++; // may print either 2 or 3

$i = 1;

$array[$i] = $i++; // may set either index 1 or 2

?

Note:

尽管 = 比其它大多数的运算符的优先级低,PHP

仍旧允许类似如下的表达式:if (!$a = foo()),在此例中

foo() 的返回值被赋给了 $a。

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

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

如: 1 == (2-1)

关于php运算符优先级问题

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

运算符优先级

结合方向

运算符

附加信息

无 clone new clone 和 new

左 [ array()

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

无 instanceof 类型

右 ! 逻辑运算符

左 * / % 算术运算符

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

左 位运算符

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

左 位运算符和引用

左 ^ 位运算符

左 | 位运算符

左 逻辑运算符

左 || 逻辑运算符

左 ? : 三元运算符

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

左 and 逻辑运算符

左 xor 逻辑运算符

左 or 逻辑运算符

左 , 多处用到

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

原创文章,作者:简单一点,如若转载,请注明出处:https://www.506064.com/n/127396.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
简单一点的头像简单一点
上一篇 2024-10-03 23:15
下一篇 2024-10-03 23:15

相关推荐

发表回复

登录后才能评论