是否有像in_array这样的函数来检查PHP中的空值?

时间:2016-11-07 05:27:01

标签: php

众所周知,in_array()函数可用于检查数组是否包含某个值。但是,当数组包含值0时,空值或null值也会通过测试。

例如

<?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 个答案:

答案 0 :(得分:1)

null == 0这一事实解释了这种行为。但是null !== 0。换句话说,您也应该检查类型。

您不需要其他功能。只需将true作为第三个参数传递:

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

在这种情况下,in_array()也会检查类型。