【发布时间】:2011-06-14 02:26:47
【问题描述】:
今天我在玩PHP,我发现字符串值“true”和“false”在一个条件下没有正确解析为布尔值,例如考虑以下函数:
function isBoolean($value) {
if ($value) {
return true;
} else {
return false;
}
}
如果我执行:
isBoolean("true") // Returns true
isBoolean("") // Returns false
isBoolean("false") // Returns true, instead of false
isBoolean("asd") // Returns true, instead of false
它似乎只适用于“1”和“0”值:
isBoolean("1") // Returns true
isBoolean("0") // Returns false
PHP 中是否有将“true”和“false”字符串解析为布尔值的原生函数?
【问题讨论】:
-
在您的代码中,
isBoolean("")应该返回 false。 -
您应该考虑将接受的答案更改为 Eric Caron 的答案。它向您展示了一个本机功能,可以满足您的要求。
-
PHP 不会思考 字符串所说的内容,“false”只是五个没有任何意义的字符。虽然它们是 something,所以布尔值的计算结果为
true,即使对于人类读者来说,它似乎更直观地表示FALSE。