php可关于&&及||的非正常用法
$a && $b=10; 当$a为真是才执行$b=10; $a || $b=10 当$a为假是才执行$b=10; PHP中&&和and都是逻辑运算符,且功能也是完全一样的。如果你不了解它俩的区别,你可能会留下很不容易发现的BUG。仔细看下面的代码片段(注释是执行结果): <?php $true= TRUE; $false= FALSE; $rt1= $true && $false; //$rt1:FALSE $rt2= $true and $false; //$rt2:TRUE var_dump($rt1); //FALSE var_dump($rt2); //TRUE var_dump($true && $false); //FALSE var_dump($true and $false); //FALSE 这里最让人感到奇怪的就是为什么$rt1成了FALSE,而$rt2却是TRUE。其实这是PHP优先级在作怪。从文档中我们看到,赋值符号”=”的优先级低于逻辑与符号 "&&”,但高于逻辑与符号 "and”(也就是&& > = > and)。也就是说: $rt1= $true && $false; $rt2= $true and $false; 在PHP看来其实是: $rt1= ($true && $false); ($rt2= $true) and $false; 这样就容易解释为什么会有那样的结果了。那现在你知道下面两句的结果了吗? var_dump($rt1 = $true && $false); var_dump($rt2 = $true and $false);