and和&&有什么区别

0) {
//2
if($oResult=mysql_query($sQuery) and mysql_num_rows($oResult) > 0) {
......
} else {
......
}
?>

当用&&时,也就是注释1的代码,无论$sID被赋的值是否在数据库中存在,其if语句执行的都是else部分.

这段代码要执行的是,当SQL语句执行后,并判断其影响的行数是否大于零.

而注释2后的代码就可以达到这个目的.

原因是什么呢?

“=”的优先级高于“and” 而低于“&&”。
$oResult=mysql_query($sQuery) && mysql_num_rows($oResult)>0
先运算
mysql_query($sQuery) && mysql_num_rows($oResult)>0
再赋值给$oResult,$oResult肯定为fasle

而第三种是先
$oResult=mysql_query($sQuery)
再做and运算

发表评论

返回顶部