in_array返回True的原因可能是字符串到数字的转换。将字符串传递给函数时,它返回0,这是需要搜索的值。
PHP使用宽松的玩法,即在比较元素时使用==而不是===。因此,将比较它们的值而不是类型。
另一个原因是类型变戏法,这意味着在代码的上下文中处理变量类型。
例如-当将浮点值分配给变量时,它将成为浮点值。当字符串强制转换为整数时,它的行为方式
为了避免这种行为,可以传递第三个参数,该参数以严格模式比较数据,其中比较值和类型。
下面是传递字符串时函数的行为-
echo intval("Hello");
输出结果
这将产生以下输出-
0