我偶然发现了这段代码(由别人写的):
$result = do_stuff(); //returns false on failure, and mysql resource on success
return $result !== false;
如果我做对了,它会将$result
强制转换为布尔值并返回它。
我们怎样才能证明使用$result !== false
代替(bool)$result
?前者更有效吗?
答案 0 :(得分:1)
我不确定你的意思是什么。根据{{1}}的结果,转换为bool可能会做同样的事情,但实际上是其他东西并暗示其他东西。
例:
如果你有do_stuff()
作为returnvalue,则转换为bool会使你的函数返回false,但0
将返回true。根据你的评论,这可能不是你在这里的用例,但暗示着它。
所以你在这里说的是“如果0 !== false
正好是$result
则返回false,否则总是返回true”,而转换为bool会在false
的任何值上返回false是'假的'。
我的理由是这更清楚:你暗示结果要么是真的$result
,要么你实际上认为它是真的。