PHP 中的双不 (!!) 运算符

2022-08-30 06:22:55

双精度运算符在 PHP 中有什么作用?

例如:

return !! $row;

上面的代码会做什么?


答案 1

它不是“双不运算符”,而是两次应用的非运算符。右将生成布尔值,而不考虑操作数。然后左派将否定该布尔值。!!

这意味着对于任何真值(除零以外的数字,非空字符串和数组等),您将获得布尔值 ,对于任何假值(0,0.0,,空字符串或空数组),您将获得布尔值。TRUENULLFALSE

它在功能上等效于强制转换为 :boolean

return (bool)$row;

答案 2

它与铸造到布尔人相同(或几乎相同 - 可能有一些角落情况)。如果将转换为 true,那么也是 true。$row!! $row

但是,如果你想实现,你可能应该只使用它 - 而不是一些“有趣”的表达;)(bool) $row


推荐