php switch 是鬆散比較 詳見 php: switch - manual
php switch 遇到『0e0' 的時候,直接就不進任何case, 也不進default。
鬆散比較和嚴格比較
在php中相等的比較有兩種:鬆散比較和嚴格比較。
當使用鬆散比較時,如果進行比較的兩個運算元型別不同,那麼會對運算元進行適當的型別轉換,轉換後的值相同則認為兩個運算元相等。switch用的就是鬆散比較。
而使用嚴格比較時,如果兩個運算元的型別不同,就認為是不相等的,如果型別相同且值也相同才會認為兩個運算元相等。strcmp()是嚴格比較。
php中的數字0,字串"0"都是false。所以在鬆散比較的switch是沒用的,並不會進任何case。
鬆散比較下各種值對應的boolean表:php鬆散比較與嚴格比較的區別詳解
php的hash比較缺陷:php在處理雜湊字串時,會利用」!=」或」==」來對雜湊值進行比較,它把每乙個以」0e」開頭的雜湊值都解釋為0,所以如果兩個不同的密碼經過雜湊以後,如果其雜湊值都是以」0e」開頭的,那麼php將會認為他們相同,都是0。
所以乙個以 '0e...' 為開頭的字串就會被判斷成0.
php switch是鬆散比較
php switch 是鬆散比較 詳見 php switch manual php switch 遇到 0e0 的時候,直接就不進任何case,也不進default。鬆散比較和嚴格比較 在php中相等的比較有兩種 鬆散比較和嚴格比較。當使用鬆散比較時,如果進行比較的兩個運算元型別不同,那麼會對運算元...
php switch 是鬆散比較
php switch 是鬆散比較 詳見 php switch manual php switch 遇到 0e0 的時候,直接就不進任何case,也不進default。鬆散比較和嚴格比較 在php中相等的比較有兩種 鬆散比較和嚴格比較。當使用鬆散比較時,如果進行比較的兩個運算元型別不同,那麼會對運算元...
php switch 是鬆散比較
php switch 是鬆散比較 詳見 php switch manual php switch 遇到 0e0 的時候,直接就不進任何case,也不進default。鬆散比較和嚴格比較 在php中相等的比較有兩種 鬆散比較和嚴格比較。當使用鬆散比較時,如果進行比較的兩個運算元型別不同,那麼會對運算元...