以下是代码示例:
$boolValue = ($a == $b) ? true : false;
当我尝试更短的路时:
$boolValue = ($a == $b);
返回1或NULL。
有没有更优雅的方式返回bool?
答案 0 :(得分:4)
$boolValue = ($a == $b);
返回1或NULL的原因是因为你用这样的回波检查它:
$boolValue = ($a == $b);
echo $bool_value; // outputs 1 or nothing at all (NULL)
您应该使用var_dump()
$boolValue = ($a == $b);
var_dump($bool_value); // outputs bool(true) or bool(false)
答案 1 :(得分:3)
首先,拥有如下代码:
($a == $b)
肯定会返回true
或false
。如果您收到1
或NULL
,那么您的代码会出现一些错误或其他错误。但为了规避错误,您可以使用use !!
强制任何值返回布尔值:
$boolValue = !!($a == $b);
!!
会将任意值转换为true
或false
,具体取决于值的真实性。这类似于bool
的类型转换。
因此,正如您声明(可能不是这种情况),在!!
或1
之前添加NULL
时,它会返回true
或false
。