1
嗨,我看到一個代碼今天這樣PHP的switch語句和0
$i=0;
switch($i){
case 'TEST': print "Test";break;
case 0: print "0";break;
}
正常輸出似乎0
但它打印Test
。然後我嘗試瞭解它並得到了一個解決方案here。也就是說,比較數字和字符串時,字符串將轉換爲數字並進行數值比較。好吧,然後它可以得到輸出Test
。
但如果我設置相同,它像
$i=0;
switch($i){
case ($a === 'Test'): print "Text";break;
case ($a === 0): print "0";break;
}
這也給結果Test
,所以我很困惑在這裏。如果我使用==
而不是===
,那麼它顯示爲空白。所以請澄清我。
使用'開關(真)' as $ a ==='Test'等於true或false – Waygood 2013-04-25 09:43:09
您將在switch語句中獲得寬鬆的鍵入比較 - '0!=='Test''但是'0 =='Test'' - 所以最好避免混合不同的數據類型 – 2013-04-25 09:46:54
也是第一個例子0與'TEST'相比 - 'TEST'是一個等於0的字符串,導致匹配http://php.net/manual/en/language.operators.comparison.php'==='類型匹配太 – Waygood 2013-04-25 09:47:50