2012-04-24 70 views
0

當我想檢查數組中是否有東西存在並獲取密鑰時,我使用array_search()函數。PHP - array_search()在=== true上失敗,但不在!== false?

爲什麼當我比較功能正好等於真(===真)返回false,當我把它比作不完全等於假(!== FALSE)返回true?

<?php 
    if(array_search($value, $array) === true) 
    { 
     // Fails 
    } 

    if(array_search($value, $array) !== false) 
    { 
     // Succeeds 
    } 
?> 

在此先感謝。當找到匹配您針

+0

不要感謝的問題。接受他的回答... – Starx 2012-04-24 08:38:21

回答

8

array_search回報。只有當找不到匹配時它才返回false。這就是爲什麼在你的情況只有相反的作品。

如果在陣列中發現該鍵,則返回針的鍵,否則返回FALSE 。

+0

啊,現在有道理。謝謝哈桑。 – MisterBla 2012-04-24 08:31:44

+0

使用'in_array'代替 – 2012-04-24 08:50:34

0

array_search()不返回true。

如果只返回false,如果找不到任何東西,否則返回匹配元素的關鍵字。

按照manual

array_search - 搜索給定值的數組,如果發現返回如果成功 相應的鍵....

返回針的關鍵在數組中,否則爲FALSE。

+0

按@Hasan汗,它返回FALSE – danneth 2012-04-24 08:27:04

+0

它可以更好地返回false – allen213 2012-04-24 08:27:52

+0

那現在你已經編輯它 – allen213 2012-04-24 08:31:18

0

它會失敗,因爲如果調用成功,它返回的鍵不是true。如果在數組中,否則爲FALSE

返回針的關鍵是:如果它不是那麼發現虛假===是確定

從手動返回

假。