首页 > 文章列表 > 为什么php的in_array函数在传入0时会返回true?

为什么php的in_array函数在传入0时会返回true?

phpin_array
375 2023-08-19

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

PHP使用宽松的强制转换,即在比较元素时使用==而不是===。因此,它们的值被比较,而不是类型。

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

例如- 当一个浮点值被赋给一个变量时,它变成一个浮点值。它的行为方式类似于将字符串转换为整数

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

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

示例

 演示

echo intval("Hello");

输出

这将产生以下输出 −

0