if(!($whatever && what()) do_stuff...
这可以用更直观的东西代替,比如:
if(not($whatever && what()) do_stuff...
?
if(!($whatever && what()) do_stuff...
这可以用更直观的东西代替,比如:
if(not($whatever && what()) do_stuff...
?
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...
所有这些方式都是直观的,并且在整个编程世界中都是众所周知的。
不,它不能。有关逻辑运算符的语言参考,请参阅http://www.php.net/manual/en/language.operators.logical.php,并导航以查找其他别名。
但是请注意, and 的优先级&&
与||
andand
不同or
。
一种选择是使布尔表达式更明确:
if(($whatever && what()) == false) // do_stuff...
或者,通过实现自定义not()
:
function not($expr) {
return $expr == false;
}
if(not($whatever && what())) // do_stuff...
其实我也不喜欢!
接线员。虽然每个开发者都能理解,但每次阅读代码都花了我一点时间。所以我更喜欢不使用!
运算符。但这也取决于。
对于 php 内置函数,我为 not 运算符创建了几乎所有的辅助函数。
没有其他选择!
,但可以写得不那么直观:
if ($whatever - 1) {
}
应该是问题原因!
太容易被忽视,但not
更明显;那么另一个替代符号是:
if (!!! $whatever) {
如果这看起来仍然很简单,只需使用:
if (~$whatever & 1) {
二元运算总是看起来很专业;)