“!==”和“==!”之间的区别
  昨天,当我修改其他人编写的PHP代码时,我偶然发现了这一点。  我很困惑,一个简单的比较( if ($var ==! " ") )没有按预期工作。  经过一些测试后,我意识到,谁写的代码使用==!  而不是!==作为比较运算符。  我从来没有见过==!  在任何语言,所以我想知道该代码甚至可以工作,并做了一些测试: 
<?php
echo "intn";
echo "1 !== 0: "; var_dump(1 !== 0);
echo "1 !== 1: "; var_dump(1 !== 1);
echo "1 ==! 0: "; var_dump(1 ==! 0);
echo "1 ==! 1: "; var_dump(1 ==! 1);
echo "booln";
echo "true !== false: "; var_dump(true !== false);
echo "true !== true: "; var_dump(true !== true);
echo "true ==! false: "; var_dump(true ==! false);
echo "true ==! true: "; var_dump(true ==! true);
echo "stringn";
echo '"a" !== " ": '; var_dump("a" !== " ");
echo '"a" !== "a": '; var_dump("a" !== "a");
echo '"a" ==! " ": '; var_dump("a" ==! " ");
echo '"a" ==! "a": '; var_dump("a" ==! "a");
?>
这产生这个输出:
int
1 !== 0: bool(true)
1 !== 1: bool(false)
1 ==! 0: bool(true)
1 ==! 1: bool(false)
bool
true !== false: bool(true)
true !== true: bool(false)
true ==! false: bool(true)
true ==! true: bool(false)
string
"a" !== " ": bool(true)
"a" !== "a": bool(false)
"a" ==! " ": bool(false)
"a" ==! "a": bool(false)
  运算符似乎适用于布尔和整数变量,但不适用于字符串。  我找不到==!  在PHP文档中或任何有关它的任何搜索引擎上(尝试Google,Bing,DuckDuckGo,但我怀疑他们试图解释它而不是搜索字符串)。  有没有人看到过这种情况,可以揭示这种行为? 
  区别在于没有运算符==!  。 
这个表达式:
$a ==! $b
基本上与此相同:
$a == (!$b)
  没有==!  PHP中的运算符 
  它只是==和!的组合!  。  目前只有相关的运营商是== 。  所以组合==!  将正常工作== ,检查Equality ,并相信我, 
$variable_a ==! $variable_b 
不是别的
$variable_a == (!$variable_b)
因此;
"a" ==! " ": bool(false)
"a" ==! "a": bool(false) //is same as "a" == (!"a")
和
true ==! false: bool(true)
true ==! true: bool(false)
  组合多个操作员字符可能无法始终作为操作员工作。  例如,如果我们取=和!  ,只有当它处于!=或!==的模式时,才会作为运营商工作。  这些字符可以有很多组合,如!==== , !==!  等等。操作员组合应该以独特的格式 , 独特的顺序 , 独特的组合 (所有的字符不会与所有其他字符结合),并且绝对没有任何空间 。 
检查下面的操作员列表;

 ==!  不是运营商,而是两个: 
  ==和! 
 !  具有比==更高的优先级 
所以:
  "a" !== " ": bool(true) - > true,因为“a”实际上不等于“” 
 "a" ==! " ": bool(false)  "a" ==! " ": bool(false) - > false,因为“a”不等于!“” 
可以用==和!之间的空格来书写。
链接地址: http://www.djcxy.com/p/10145.html上一篇: Difference between "!==" and "==!"
下一篇: Using `$this` in an anonymous function in PHP pre 5.4.0
