我原来以为PHP中的,和和,是一样的,只是写法上为了可读性和美观,事实上我错了。这里面深藏了一个坑!
看以下代码:
英航美元=true; bB美元=false; b1美元=英航和bB美元; b2=bA和美元,bB美元; 美元var_dump (b1);//美元b1=true 美元var_dump (b2);//美元b2=false 英航美元=false; bB美元=true; b3=$ bA或bB美元; b4=美元英航| | $ bB; 美元var_dump (b3);//美元b3=false 美元var_dump (b4);//b4美元=true >之前奇怪吧,,,,和或/| |出来的结果竟然不一样的。问题出在哪里呢& # 63;
我们再看一段代码!英航美元=true; bB美元=false; 英航和美元var_dump (bB);//错误 var_dump (bA和美元,美元bB);//错误 英航美元=false; bB美元=true; var_dump (bA或bB美元);//正确的 var_dump()美元英航| | $ bB);//正确的 >之前更奇怪,这时怎么是对的。所以问题可能出现在=上,一番谷歌和文档,终于找到了答案!
<>强运算符优先级强>
通过这个表,我们可以看到和/,,和或/| |这两组运算符的优先级竟然是不一样的。和和的优先级是低于=的,所以上面的代码就好理解了,就是先做赋值然后再做了一个,或或的逻辑运算,这个运算的结果并没有存下来。所以最后出来让我们匪夷所思的结果。
结合性 运算符 额外信息 无结合性 克隆的新 克隆和新 左 ( 数组 左 * * 算术 右 + + - ~ (int)(浮动)(字符串)(数组)(对象)(bool) @ 类型和自增、自减 无结合性 运算符 类型 右 ! 逻辑运算 左 */% 算术 左 + -。 算术和字符串 左 & lt; & lt;在比; 按位运算 无结合性 & lt;& lt;=比;祝辞=比较运算 无结合性======!==& lt;比; 比较运算 左 , 按位运算和引用 左 ^ 按位运算 左 |按位运算 左 ,, 逻辑运算 左 | |逻辑运算 左 & # 63;: 三元条件选择 右=+=-=*=/=?%=,==^=& lt; & lt;=祝辞祝辞==比;|赋值 左 和 逻辑运算 左 xor 逻辑运算 左 或 逻辑运算 左 , 很多使用
php中并和& &出坑指南