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 の優先順位は&&
and と||
同じではないand
ことに注意してくださいor
。
1 つのオプションは、ブール式をより明示的にすることです。
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) {
バイナリ操作は常にプロフェッショナルに見えます;)