如果传递0,为什么PHP的in_array返回true?

in_array返回True的原因可能是字符串到数字的转换。将字符串传递给函数时,它返回0,这是需要搜索的值。

PHP使用宽松的玩法,即在比较元素时使用==而不是===。因此,将比较它们的值而不是类型。

另一个原因是类型变戏法,这意味着在代码的上下文中处理变量类型。

例如-当将浮点值分配给变量时,它将成为浮点值。当字符串强制转换为整数时,它的行为方式

为了避免这种行为,可以传递第三个参数,该参数以严格模式比较数据,其中比较值和类型。

下面是传递字符串时函数的行为-

示例

echo intval("Hello");

输出结果

这将产生以下输出-

0