2012-09-04 51 views
4

可能重複:
'AND' vs '&&' as operatorPHP運營商差異&&和「和」

對不起,非常基本的問題,但我開始學習PHP就在一週前&找不到答案在谷歌/ stackoverflow這個問題。

我經歷了以下程序:

$one = true; 
$two = null; 
$a = isset($one) && isset($two); 
$b = isset($one) and isset($two); 

echo $a.'<br>'; 
echo $b; 

它的輸出是:

false 
true 

我讀& & /和相同。兩者的結果有何不同?有人能說出真實的原因嗎?

回答

13

原因是operator precedence。在您使用&&三大運營商,and & =,優先順序是

  • &&
  • =
  • and

所以$a在程序中按預期計算,但對於$b,聲明$b = isset($one)是先計算,給出意想不到的結果。它可以如下修復。

$b = (isset($one) and isset($two)); 
+1

+1已添加指向文檔的鏈接。 –

1

這就是運營商的分組如何發生

$one = true; 
$two = null; 
$a = (isset($one) && isset($two)); 
($b = isset($one)) and isset($two); 

echo $a.'<br>'; 
echo $b; 

所以它返回的第一和真正的第二假。