gpt4 book ai didi

php - 为什么 in_array 不适用于在 PHP 中使用循环创建的数组?

转载 作者:可可西里 更新时间:2023-11-01 13:42:36 25 4
gpt4 key购买 nike

为什么 in_array 不适用于从循环 php 创建的数组?

下面的代码显示找到匹配项

<?php
for ($i = 0; $i < 10; ++$i) {
$people[] = $i;
}
if (in_array('test', $people))
{
echo "Match found";
}
else
{
echo "Match not found";
}
?>

下面的代码显示未找到匹配项

<?php
$people = array("0","1","2","3","4","5","6","7","8","9");
if (in_array('test', $people))
{
echo "Match found";
}
else
{
echo "Match not found";
}
?>

如何解决第一个代码显示Match not found

最佳答案

因为在你的第一个数组中你有整数并且默认情况下 in_array()non-strict type comparison , 它只有一个 limited amount of type pairs它考虑到了这一点。所以它会用你的指针对一个整数进行静默转换,结果为 0 并在数组中找到它。

为避免此错误,只需将 TRUE 作为第三个参数传递给 in_array(),这样它就会执行 strict type comparison。 ,例如

if (in_array('test', $people<b>, TRUE</b>))

关于php - 为什么 in_array 不适用于在 PHP 中使用循环创建的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34625633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com