之间有什么区别吗!!$var和(布尔)$var


Is there any difference between !!$var and (bool) $var?

如果要强制转换数据类型,使用 !! 运算符或 (bool) 运算符有什么区别吗?

    $number = 1;
    var_dump( (bool) $number ) //true
    var_dump( !! $number ) //true

(bool) ,正如Meagar在评论中提到的,在语义上更有意义。另外,请记住,(bool)正在执行一个操作,而!!正在执行两个操作(双重否定)。性能差异几乎无法检测到,但如果批量使用,可能会加起来。

使用"!!"会使你加倍否定句子。正如你正在使用的!为此,PHP 会自动将变量转换为布尔值,并且由于您正在否定否定,因此变量的值将保持不变。因此,使用"(bool)"或"!!"强制转换变量基本上具有相同的效果。