开篇先来一张php官网给出的运算符优先级的图片 ![](https://box.kancloud.cn/64a67ca627c850855a40c36f97c6145b_1046x794.png) # living example one ~~~ $a = 1; echo $a+$a++; //output 3 ~~~ 考点: 1)运算符优先级以及短路的问题 分析: 1)从开篇头部图片可以看出 "++" 优先级是最高的,那么他将先运算,但是"++"又是先用该字符值后累计 2)当运算到$a的时候已经变成2,由于"++"已经执行了 3)2+1 最后输出3 # living example two ~~~ $x = 5; echo $x; echo $x+++$x++; echo $x; echo $x---$x--; echo $x; 实际运行结果是 5 11 7 1 5 ~~~ 考点: 1)运算符优先级问题 分析: 1)$x++ 和 $x--这个问题其实非常容易遇见,我们只需记住$x++使用最近的值,然后才自增。 2)运算符的优先级,++ 是明显高于 +,因此先执行++ 再执行 + 。关于运算符的优先级,有 的时候我们真的可以通过括号来让我们的程序更加让人直观的了解,毕竟代码它不光是用于执行 的,有的时候或许团队的可读性也是提高效率的一种。 # living example three ~~~ $bool = true && false; var_dump($bool); //output:false ~~~ 考点: 1)算术运算符优先级的问题 分析: 1)&& > = 运算符,依次执行顺序为&& 之后是= ,因此输出false # living example four ~~~ $a = 0; $b = 0; if( $a=3>0 || $b=3>0 ){ $a++; $b++; echo $a.'\n'; echo $b.'\n'; } //output: 1 1 ~~~ 考点: 1)算术运算符优先级的问题 分析: 1)运算符优先级 > > || > = ,因此就会出现3>0,那么一个为true,整个条件都为true,将进入if条件