<分区>
我对 in_array
函数有疑问。下面的测试返回 true
:
in_array(0, array('card', 'cash'))
这怎么可能,我该如何预防?
不过
in_array(null, array('card', 'cash'))
返回 false
。
<分区>
我对 in_array
函数有疑问。下面的测试返回 true
:
in_array(0, array('card', 'cash'))
这怎么可能,我该如何预防?
不过
in_array(null, array('card', 'cash'))
返回 false
。
最佳答案
将任何不以数字开头的字符串转换为数字会导致 PHP 中的 0
。这正是将 0
与某个字符串进行比较时发生的情况。查看PHP docs有关如何完成各种类型之间的比较的详细信息。
使用 in_array
的第三个参数(将其设置为 true
)以避免松散的类型比较。
in_array(0, array('card', 'cash'), true) === false
关于php - 如果 needle 为 0,in_array 返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16787762/