是否需要第三级运营商

时间:2016-05-06 14:09:46

标签: php

以下是代码示例:

$boolValue = ($a == $b) ? true : false;

当我尝试更短的路时:

$boolValue = ($a == $b);

返回1或NULL。

有没有更优雅的方式返回bool?

2 个答案:

答案 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)

肯定会返回truefalse。如果您收到1NULL,那么您的代码会出现一些错误或其他错误。但为了规避错误,您可以使用use !!强制任何值返回布尔值:

$boolValue = !!($a == $b);

!!会将任意值转换为truefalse,具体取决于值的真实性。这类似于bool的类型转换。

因此,正如您声明(可能不是这种情况),在!!1之前添加NULL时,它会返回truefalse