if(!($whatever && what()) do_stuff...
可以用更直观的东西代替:
if(not($whatever && what()) do_stuff...
答案 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,然后导航以查找其他别名。
但请注意,&&
和||
的优先级与and
和or
的优先级不同。
答案 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) {
二元操作总是看起来很专业;)