|
小弟來(lái)解釋下 為什么
var_dump(in_array(0, array('s' ));
這句話的結(jié)果是bool(true)。
因?yàn)閕n_array會(huì)將0 和's' 進(jìn)行比較,0是number類型,'s'是string類型,根據(jù)php manual 中“Comparison Operators” 一章的說(shuō)明可知,number 和string進(jìn)行
比較的時(shí)候,會(huì)先將string類型首先轉(zhuǎn)化為number,然后再進(jìn)行比較操作。 's'轉(zhuǎn)化為number的結(jié)果為0,而0 == 0 的結(jié)果是true,所以in_array(0, array('s', 'ss'))的結(jié)果也是true
如果把in_array 的第三個(gè)參數(shù)strict設(shè)置為 true,比較的時(shí)候 就會(huì)判斷值和類型是否都相當(dāng)。如果都相當(dāng)?shù)脑挘艜?huì)返回true,否則返回false.
僅此為記。
php技術(shù):PHP IN_ARRAY 函數(shù)使用注意事項(xiàng),轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。