另外,我們在 控制結構比較兩個數值是否一直的時候,也應該盡量使用 === 來代替 ==(當然,這個也根據具體的業務邏輯選用比較合適的)。
小弟來解釋下 為什麼
var_dump(in_array(0, array('s' ));
這句話的結果是bool(true)。
因為in_array會將0 和's' 進行比較,0是number類型,'s'是string類型,根據php manual 中“Comparison Operators” 一章的說明可知,number 和string進行
比較的時候,會先將string類型首先轉化為number,然後再進行比較操作。 's'轉化為number的結果為0,而0 == 0 的結果是true,所以in_array(0, array('s', 'ss'))的結果也是true
如果把in_array 的第三個參數strict設置為 true,比較的時候 就會判斷值和類型是否都相當。如果都相當的話,才會返回true,否則返回false.
僅此為記。