Type juggling - Ressource to boolean



我偶然发现了这一点代码(由其他人编写):

$result = do_stuff(); //returns false on failure, and mysql resource on success
return $result !== false;

如果我做对了,它将$result施放给布尔值并将其返回。

我们如何证明使用$result !== false而不是(bool)$result合理?前者是否更有效?

我不确定您的意思是Jusify。铸造给布尔可能会根据do_stuff()的结果做同样的事情,但实际上是其他的,也意味着其他。

示例:
如果您将0作为returnValue,则将其投入到bool将使您的函数返回false,但是0 !== false将返回true。根据您的评论,这可能不是您在这里拥有的用户酶,但这是暗示的。

因此,您在这里说的是"如果$result完全是false,则返回false,否则始终返回true",而施放到bool则将返回false false $result的任何值,即'false-ish'。

我的理由是,这更清楚:您暗示结果是真正的false,或者您实际上认为它是正确的。

相关内容

最新更新