6

当您想转换数据类型时,使用!!或运算符之间有什么区别吗?(bool)

    $number = 1;

    var_dump( (bool) $number ) //true
    var_dump( !! $number ) //true
4

2 回答 2

7

(bool),正如meagar在评论中提到的,在语义上更有意义。另外,请记住(bool)执行一项操作,同时!!执行两项操作(双重否定)。性能上的差异几乎无法察觉,但如果大量使用,它可能会加起来。

于 2013-09-20T20:00:31.180 回答
0

使用 '!!' 让你双重否定这个句子。当您使用 ! 这样做时,PHP 会自动将变量转换为布尔值,并且由于您正在否定否定,因此变量的值将保持不变。因此,使用 '(bool)' 或 '!!' 转换变量 基本上是一样的效果。

于 2013-09-20T20:00:01.147 回答