PHP使用'!!'转换为布尔值

Mat*_*ddy 5 php boolean

这里有一个相当直截了当的问题.正在查看一些代码,我已经看到了一个似乎将给定变量转换为布尔值的函数.它是这样的:

function to_bool( $var ) {
    return !!$var;
}
Run Code Online (Sandbox Code Playgroud)

很简单,但它是如何工作的?从来没有见过这个,谷歌搜索并没有真正让我到任何地方.额外的'!' 翻转结果?'!$ var'可用于检查var是否为false,'!!'也是如此 将'false'变为true,反之亦然?

web*_*ave 9

它是如何工作的?

not运算符将变量放入条件中.因此,结果是布尔值.第二个没有翻转它的价值.

在代码中使用显式强制转换而不是这样的函数更清楚:

(bool)$var;
Run Code Online (Sandbox Code Playgroud)