逻辑运算符是从左到右进行运算的。对于逻辑或来说,只要左侧有一个子表达式为真,就不会再继续计算右侧剩余的表达式了(因为此时整个逻辑或表达式已经为真了)。$a=3 赋值语句肯定为真,所以右边的$b=6压根就不会被执行。逻辑与跟它类似,只要左边有一个子表达式为假,整个逻辑与表达式即为假,右边的表达式也不会再被运算。这种现象常被称为逻辑短路,下面复制粘贴网上down下来的概念:逻辑短路是对于逻辑运算而言,是指,仅计算逻辑表达式中的一部分便能确定结果,而不对整个表达式进行计算的现象。 对于“&&”运算符,当第一个操作数为false时,将不会判断第二个操作数,因为此时无论第二个操作数为何,最后的运算结果一定是false; 对于“||”运算符,当第一个操作数为true时,将不会判断第二个操作数,因为此时无论第二个操作数为何,最后的运算结果一定是true。
|| 运算符短路问题, 表达式A || 表达式B当表达式A或者表达式B有一个为true时,整体运算结果为true,但是如果||前面的表达式已经为true了,那么整体的逻辑运算结果就已经知道了,就是true,那么这个时候表达式B就不会执行了,被短路掉了
这个主要是考察“||“也就是逻辑判断当中的“或“用法:if($a=3 || $b=6)$a=3 时为把3赋值给$a,$a=3返回为真,按照程序自左至右的执行方式,当左位为真时,“或“判断直接返回真,不再进行后续的判断。所以$b = 8,后续执行 $b+=1 = 9