2015-06-15 127 views
-2

細則(< =>)和空合併運算符(??)組合比較運算符(<=>)和空合併運算符(??)組合左右比較運算符

+0

['<=>'](https://wiki.php.net/rfc/combined-comparison-operator),[''''](https://wiki.php.net/rfc/isset_ternary),[比較運算符](https://wiki.php.net/rfc/combined-comparison-operator) – castis

+1

你有沒有想過閱讀文檔? – vascowhite

+0

@vascowhite是的,但文檔只有一些簡要的信息不詳細。 –

回答

1

將合併的比較運算符返回-1,0,或1,這取決於哪個是大於另一個:

if ($x <=> $y == -1) { 
    echo '$x < $y'; 
} elseif ($x <=> $y == 1) { 
    echo '$x > $y'; 
} else { 
    echo '$x == $y'; 
} 

空合併操作類似於做$x ?: $y,但正在檢查null代替假-γ:

$x = null; 
$y = 'hello'; 
echo $x ?? $y; //hello 
echo $x ?: $y; //hello 
$x = 0; 
$y = 1; 
echo $x ?? $y; //0; 
echo $x ?: $y; //1 
+0

'''比這更復雜。它也'isset()'。 – Andrea

+0

,我相信如果變量沒有被定義,它就不會發出通知,就像empty() – arod