2016-11-07 116 views
2

據瞭解,in_array()函數可用於檢查數組是否包含某個值。但是,如果數組包含值0,則空值或null值也會通過測試。是否有像in_array這樣的函數來檢查PHP中的空值?

例如

<?php 
    $testing = null; 
    $another_testing = 0; 
    if (in_array($testing, [0,1,5,6,7])) 
     echo "Found"; 
    else 
     echo "Not Found"; 
    echo "<br>"; 
    if (in_array($another_testing, [0,1,5,6,7])) 
     echo "Found"; 
    else 
     echo "Not Found"; 
?> 

在兩種情況下"Found"被打印。但我希望第一個案例能夠打印"Not Found",第二個案例 - "Found"

我知道我可以通過添加一個額外的if聲明或編寫自己的函數來解決問題,但是我想知道是否有可以執行檢查的PHP內置任務。

回答

1

此行爲由事實null == 0解釋。但null !== 0。換句話說,你也應該檢查類型。

您不需要其他功能。簡單地傳遞true作爲第三個參數:

in_array($testing, [0,1,5,6,7], true) 

在這種情況下in_array()還將檢查的類型。

相關問題