PHP - 不是运算符,还是其他任何别名?

时间:2011-02-06 12:03:30

标签: php operators logical-operators

if(!($whatever && what()) do_stuff...

可以用更直观的东西代替:

if(not($whatever && what()) do_stuff...

4 个答案:

答案 0 :(得分:4)

function not($OriginalCheck)
{
    return !$OriginalCheck;
}

function is($OriginalCheck)
{
    return !!$OriginalCheck;
}

应该这样做:)

有几种方法可以编写支票:

  • if(!($whatever && what()) do_stuff...
  • if(!$whatever || !what()) do_stuff...
  • if(($whatever && what()) === false) do_stuff...
  • if((!$whatever || !what()) === true) do_stuff...
  • if($whatever === false || what() === false) === true) do_stuff...

所有这些方式都是直观的,并且在整个编程世界中都是已知的。

答案 1 :(得分:2)

不,不能。有关逻辑运算符的语言参考,请参阅http://www.php.net/manual/en/language.operators.logical.php,然后导航以查找其他别名。

但请注意,&&||的优先级与andor的优先级不同。

答案 2 :(得分:1)

一个选项是使布尔表达式更明确:

if(($whatever && what()) == false) // do_stuff...

或者,通过实施自定义not()

function not($expr) {
    return $expr == false;
}

if(not($whatever && what())) // do_stuff...

答案 3 :(得分:0)

没有替代!,但可以写得 直观:

if ($whatever - 1) {
}

问题应该是! 太容易忽视,但not更明显;那么另一种替代符号是:

if (!!! $whatever) {

如果这看起来仍然很简单,只需使用:

if (~$whatever & 1) {

二元操作总是看起来很专业;)