-2
在開發一個PHP應用程序時,我遇到了這個奇怪的怪癖。爲什麼「01」==「1」,「000333」==「333」等是真的?
顯然,字符串'01' == '1'
,'05' == '5'
,'03111' == '3111'
。 我想這 -
php > $numbers = ["1", "2", "3", "4", "5"];
php > in_array("01", $numbers);
true
php > var_dump("01" == "1");
true
php > var_dump("00003333" == "3333")
true
如何防止這種情況(即針對in_array
調用返回false),以及爲什麼它擺在首位發生?
使用3等號''=== PHP – 123
的手冊中有一些指引變量類型及其在比較中的作用。 http://php.net/manual/en/language.operators.comparison.php –
僅供參考:'in_array()'在默認情況下做了比較鬆散的比較,所以它與'=='基本相同,同樣的原因,它以同樣的方式工作。它也是使用'=='和'in_array()'解決它的相同解決方案,只是使用相同的比較。 – Rizier123