【问题标题】:array_search() returns 1 if $needle is 0 [duplicate]如果 $needle 为 0,array_search() 返回 1 [重复]
【发布时间】:2016-10-20 12:43:01
【问题描述】:

这是我在array_search() 中发现的奇怪现象;

$test = array(
  1 => 'first', 
  2 => 'second'
);

现在如果要搜索的针为 0 例如:

$val = 0;
$key = array_search($val, $test);

现在$key 返回为1(第一个键)。

有谁知道如何处理这种行为并返回false 进行此检查?它在任何地方都有记录吗?我已经搜索过,但即使在 SO 上也没有找到。

谢谢!

【问题讨论】:

标签: php arrays


【解决方案1】:

这不是错误,而是 PHP 如何处理比较。由于$val 是一个整数,PHP 会将您的字符串转换为整数进行比较。将'first' 转换为整数将得到0,因此比较为0 == 0,这显然是正确的。这就是它返回第一个结果的原因。

【讨论】:

  • 不知何故转换没有点击我。谢谢:-)
猜你喜欢
  • 2013-05-23
  • 1970-01-01
  • 1970-01-01
  • 2016-06-09
  • 2015-07-23
  • 2015-12-28
  • 2018-06-24
  • 2022-01-04
  • 1970-01-01
相关资源
最近更新 更多