double not(!!):在PHP中,变量的真值或表达式由double not(!!)或'NOT NOT'运算符返回。
用外行的话来说,它是变量或表达式的双重否定/双重补码。
对变量/表达式进行补充(通过使用逻辑运算符!)可得出否定。然后再次对其进行补码会产生最初存在的原始布尔值。
此外,可以通过说传递给double not-operator的具有TRUE值的表达式不变并保持TRUE来进行详细说明。表达式的FALSE值也保持FALSE。
但是,如果值保持不变,那么为什么要使用此运算符?可以实现检查在表达式/变量中是否存储了布尔数据(TRUE / FALSE)。
NOT(!)和NOT NOT(!!)运算符之间的差异可以通过例子来理解,如果一个表达式/变量是TRUE,则前者返回FALSE,而后者则返回true。
以下是说明!的效果的程序。和!布尔表达式上的运算符。
用来说明not运算符(!)和double not运算符(!!)的工作的程序
<?php echo("Using ! operator for Boolean expression A.B \n"); echo("A" . " ". "B" . " " . "EXP" . "\n"); for ($i = 0; $i <= 1; $i++) { for ($j = 0; $j <= 1; $j++) { $expression = $i & $j; $expression = !$expression; if($expression==FALSE) $expression=0; echo($i . " ". $j . " " . $expression . "\n"); } } echo("Using !! operator for Boolean expression A.B \n"); echo("A" . " ". "B" . " " . "EXP" . "\n"); for ($i = 0; $i <= 1; $i++) { for ($j = 0; $j <= 1; $j++) { $expression = $i & $j; $expression = !!$expression; if($expression==FALSE) $expression=0; echo($i . " ". $j . " " . $expression . "\n"); } } ?>
输出:
Using ! operator for Boolean expression A.B A B EXP 0 0 1 0 1 1 1 0 1 1 1 0 Using !! operator for Boolean expression A.B A B EXP 0 0 0 0 1 0 1 0 0 1 1 1
另一个例子可以更好地理解这个概念。现在,如果有任何数字(整数或浮点类型),并且大于0,则将其视为1。
因此,当被否定时,结果为0。但是当通过双重否定两次时,结果不是!运算符,它不返回原始值,而是1。
用一个例子可以进一步理解。让我们以数字77为例。它将被视为TRUE布尔值,因此当与!互补时!给我们0,即FALSE布尔值。现在补0给我们1。