簡體   English   中英

PHP的in_array意外結果

[英]PHP's in_array unexpected result

當我執行這一小段PHP代碼時:

php -r "echo(in_array(0, array('aaa', 'bbb')));"

這回事真實 ......

當然,如果我將嚴格標志添加到in_array ,我有很好的返回值,但我只是無法理解為什么它返回true (我不能!!)。 如果有人能解釋我,今晚我會睡得好。

PS:對不起,這只是好奇心......

那是因為對於PHP這段代碼將返回true

0 == 'aaa'

所以沒有嚴格的檢查, PHP會在給定的數組中找到你的值。

另外,看看這段代碼:

   var_dump(0 == 'aaa');
   var_dump(0 === 'aaa');
   var_dump(in_array(0, array('aaa', 'bbb')));
   var_dump(in_array(0, array('aaa', 'bbb'), true));

最后一個版本允許嚴格的類型比較,因此它將按預期工作,即返回false。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM