为什么 php 的 in_array 在传递 0 时会返回 true?
phpserver side programmingprogramming更新于 2025/10/1 21:37:17
in_array 返回 True 的原因可能是字符串到数字的转换。当将字符串传递给函数时,它会返回 0,而这正是需要查找的值。
PHP 使用松散操作,即在比较元素时使用 == 而不是 ===。因此,比较的是它们的值,而不是类型。
另一个原因是类型操作,这意味着变量类型是在代码上下文中处理的。
例如,当将浮点值赋给变量时,它会变成浮点值。它的行为类似于将字符串转换为整数。
为了避免这种行为,可以传递第三个参数,该参数以严格模式比较数据,其中值和类型都会进行比较。
以下是传递字符串时函数的行为 −
示例
echo intval("Hello");
输出
这将产生以下输出 −
0

