为什么 php 的 in_array 在传递 0 时会返回 true?

phpserver side programmingprogramming更新于 2025/10/1 21:37:17

in_array 返回 True 的原因可能是字符串到数字的转换。当将字符串传递给函数时,它会返回 0,而这正是需要查找的值。

PHP 使用松散操作,即在比较元素时使用 == 而不是 ===。因此,比较的是它们的值,而不是类型。

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

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

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

以下是传递字符串时函数的行为 −

示例

echo intval("Hello");

输出

这将产生以下输出 −

0

相关文章