如果要强制转换数据类型,使用 !!
运算符或 (bool)
运算符有什么区别吗?
$number = 1;
var_dump( (bool) $number ) //true
var_dump( !! $number ) //true
(bool)
,正如Meagar在评论中提到的,在语义上更有意义。另外,请记住,(bool)
正在执行一个操作,而!!
正在执行两个操作(双重否定)。性能差异几乎无法检测到,但如果批量使用,可能会加起来。
使用"!!"会使你加倍否定句子。正如你正在使用的!为此,PHP 会自动将变量转换为布尔值,并且由于您正在否定否定,因此变量的值将保持不变。因此,使用"(bool)"或"!!"强制转换变量基本上具有相同的效果。