我正在处理的一段代码中,需要从数据库中提取一个值并检查它是否为0
。最初,我将其编写为:
if ($myVal == 0) { ...
但是今天我重新查看代码后,发现那里有一个 bug:
var_dump("foo" == 0); // bool(true)
// and while we're here...
var_dump(intval("foo")); // int(0)
由于这个值来自数据库,那通常意味着它会是一个字符串,因此我想我可以这样做:
if ($myVal === "0")
但这似乎不符合直觉,因为我实际上想处理整数,而这似乎表明我们正在处理字符串。(希望你能理解。) 此外,任何给定的DB访问器将把值转换为其适当的类型,这应该是意料之中的,考虑到字段类型。
当值既可能是字符串又可能是整数时,你使用什么方法来检查其是否为0?