【发布时间】:2016-12-02 14:47:21
【问题描述】:
PHP 函数in_array(...)“检查一个值是否存在于数组中”。
但我在处理字符串时发现了一个非常奇怪的行为 (PHP v7.0.3)。这段代码
$needle = 'a';
$haystacks = [['a'], ['b'], [123], [0]];
foreach ($haystacks as $haystack) {
$needleIsInHaystack = in_array($needle, $haystack);
var_dump($needleIsInHaystack);
}
生成以下输出:
bool(true)
bool(false)
bool(false)
bool(true) <- WHAT?
如果$haystack 包含一个值为0 的元素,该函数会为每个string $needle 返回true!
真的是设计的吗?或者它是一个错误,应该报告?
【问题讨论】: