php inarray返回值为零的TRUE

php inarray返回值为零的TRUE,php,Php,我尝试使用,如果值为零,则返回TRUE。var\u dump也返回bool TRUE $srcElement=0; var_dump(in_array($srcElement,array('HA','DA','SA','CA'))); if (in_array($srcElement,array('HA','DA','SA','CA'))) { echo "VALUE EXISTS"; } else { echo "VALUE NOT FOUND"; } 并将输出作为 bool

我尝试使用,如果值为零,则返回TRUE。var\u dump也返回bool TRUE

$srcElement=0;
var_dump(in_array($srcElement,array('HA','DA','SA','CA')));
if (in_array($srcElement,array('HA','DA','SA','CA')))
{
    echo "VALUE EXISTS";
}
else
{
 echo "VALUE NOT FOUND";   
}
并将输出作为

bool(true) VALUE EXISTS
为零的情况下如果我使用任何其他整数,则返回ELSE部分。
这背后有什么具体原因吗?

在进行比较时,存在类型转换。试着进行严格的比较

in_array($srcElement,array('HA','DA','SA','CA'),true);

var_dump(in_array($srcElement,array('HA','DA','SA','CA')));

将打印
false

var\u dump(0==“HA”)
然后检查_数组中
的第三个参数
在_数组中
使用
strict
参数
另请参见您在问题中提到的手册页面上的第一个示例和注释try
$srcelelement='0'明白:(我错过了那个参数.)。。