我希望将0视为整数,将'0‘视为字符串,但在下面的示例中,empty()将'0’视为字符串。
$var = '0';
// Evaluates to true because $var is empty
if (empty($var)) {
echo '$var is empty';
}
我如何'make‘empty()来接受’0‘作为字符串?
发布于 2010-11-10 06:27:20
您不能让empty()接受它。这就是它是如何设计的。相反,您可以编写一条and
语句来测试:
if (empty($var) && $var !== '0') {
echo $var . ' is empty';
}
当然,您可以使用isset
,除非您希望它拒绝empty
检查的其他空值。
发布于 2010-11-10 06:28:20
在这两种情况下,empty()
都将返回true
。检查the documentation。
我建议使用不同的函数来匹配您的规范。
发布于 2011-05-11 08:08:12
我总是在我的代码库中添加以下内容:
function is_blank($value) {
return empty($value) && !is_numeric($value);
}
并使用它而不是空()。它解决了保持零(整型、浮点型或字符串)为非空的问题。
请参阅2011年5月添加的is_blank()。
https://stackoverflow.com/questions/4139301
复制相似问题