PHP常用运算符优先级表

结合方向

运算符

描述

说明

clone new

clone new

  

  

其他

[ ]

其他

  

  

++ -- () ~ int

float string arrayobjectbool @

类型和递增、递减、错误抑制

  

!

逻辑运算符

  

  

  • / %

算术运算符

  

  

+ - .

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

  

  

<< 左移 >> 右移

位运算符

  

  

== != === !== < > A <>B 不等运算符有两种写法

比较运算符

  

  

&

按位与

位运算符和引用

  

  

^

按位异或

位运算符

  

  

|

按位或

位运算符

  

  

&&

逻辑与

逻辑运算符

  

  

||

逻辑或

逻辑运算符

  

  

? :

三元运算符

  

= += -= *= /= .= %= &= |= ^= <<= >>= =>

赋值运算符

  

  

and

(按位与)

逻辑运算符()

$a & $b

将把 $a 和 $b 中都为 1 的位设为 1。

xor

(按位异或)

逻辑运算符(异或)

  

  

or (按位或)

逻辑运算符(或)

  

  

,

  

  

   

   

   

运算符分类:三大类

   

   

单目运算符

   

++--!~位运算(按位非)

   

   

双目运算符

   

+ - * / % > < ==

   

   

   

三目运算符

? :

   

   

   

   

   

   

容易混淆的运算符口诀:

   

先乘除加减比较逻辑跟着算,非子来了最优先!

   

也就是优先级:!(非) > 数学类 > 比较类 > 逻辑类

   

运算符考虑思想:

   

1优先级2结合方向 3、特例 4BUG 5、不同类型运算间的转换

   

未明确优先级别的运算符:

   

类型检查 instanceof 示例: objA instanceof A

   

   

其他说明:

运算符与操作数的各种结合情况异常复杂,特殊的案例结果不可预知,无法完全记忆。为了避免特性及BUG

   

的发生,书写时要求逻辑清晰,操作数配合运算符要尽量有意义。

   

   

以下的特性或bug注意避免其出现就行,以下是示意代码

<?php

$a =1 ;

$b = $a + $a +$a=2;

//4=1+1+2

// 结果$b是多少?

?>

   

   

特例中的编程思想:

一个有歧义或多种可能运算中,优先按正常顺序尝试进行,如果不行再改变方案。

   

<?php

$a =1 ;

$b = &$a;

$c = ++ $a + $a ++;

// 结果$c是多少?

?>

posted @ 2017-09-06 00:44  lison-note  阅读(4344)  评论(0编辑  收藏  举报