所以我在PHP 5.6中使用了>!
比较运算符,它可以工作。它没有出现在任何运营商文档中,我感到困惑,为什么它起作用,为什么PHPStorm不抱怨它?即使!($foo > $bar)
是正确的语法。.
答案 0 :(得分:4)
您的>!
运算符实际上是两个运算符:>
和!
。 !
应用于第二个参数:
var_dump(!4); // `false`
var_dump(3 >! 4); // `true`
true
的最后一种情况如何:
var_dump(3 >! 4)
与var_dump(3 >(! 4))
相同,因为operators precedence
!
应用于4
会给您false
3
和false
会得到true
,因为3
是truthy
的值,总是比大任何falsy
/ false
值。作为练习,您可以了解以下棘手的情况:
var_dump(0 > !0); // false
var_dump(-3 > !0); // false
答案 1 :(得分:0)
作为变量比较运算符,它似乎对我不起作用。在php 5.6中,结果不一致:
$a = 10;
$b = 5;
var_dump($a >! $b);
返回true
但是
$a = 10;
$b = 11;
var_dump($a >! $b);
再次返回true
正如其他人所述,您的变量被评估为false
,这使得if语句在上面的代码中返回true