在PHP中双重(!!)运算符
双重非运算符在PHP中做什么?
例如:
return !! $row;
上面的代码会做什么?
这不是“双重操作者”, 而是非操作员施加两次。 正确!
无论操作数如何,都会导致一个布尔值。 然后左!
将否定布尔值。
这意味着对于任何真值(非零数字,非空字符串和数组等),您将获得布尔值TRUE
,并且对于任何假值(0,0.0, NULL
,空字符串或空数组),您将获得布尔值FALSE
。
它在功能上等同于转换为boolean
:
return (bool)$row;
这是相同的(或几乎相同 - 可能有一些角落的情况下)铸造到布尔。 如果$row
会转换为true,那么!! $row
!! $row
也是如此。
但是如果你想实现(bool) $row
,你应该使用那个 - 而不是一些“有趣的”表达式;)
这意味着如果$row
有一个真值,它将返回true
,否则返回false
,转换为布尔值。
这里是从PHP文档布尔转换的示例表达式。
Expression Boolean
$x = ""; FALSE
$x = null; FALSE
var $x; FALSE
$x is undefined FALSE
$x = array(); FALSE
$x = array('a', 'b'); TRUE
$x = false; FALSE
$x = true; TRUE
$x = 1; TRUE
$x = 42; TRUE
$x = 0; FALSE
$x = -1; TRUE
$x = "1"; TRUE
$x = "0"; FALSE
$x = "-1"; TRUE
$x = "php"; TRUE
$x = "true"; TRUE
$x = "false"; TRUE
链接地址: http://www.djcxy.com/p/1725.html