在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

上一篇: Double not (!!) operator in PHP

下一篇: What is the PHP operator % and how do I use it in real