开篇先来一张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条件