处理字符串时,in_array无法正常工作

时间:2015-02-10 17:03:26

标签: php

此代码:

var_dump(in_array("000", array(",00", ".00")));
var_dump(in_array("111", array(",11", ".11")));

输出:

bool(true)
bool(false)

为什么第一行会返回true

1 个答案:

答案 0 :(得分:9)

它与PHP的类型强制有关。 " 000"基本上转换为0。为了强制它使用严格的类型检查,in_array()接受第三个参数。

var_dump(in_array("000", array(",00", ".00"), true));

输出:

bool(false)

编辑:@andrekeller还指出".00"也可能转换为int 0。故事的道德,不要信任PHP以使类型正确。