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