2

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

これは、次のようなより直感的なものに置き換えることができますか?

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

?

4

5 に答える 5

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...

これらの方法はすべて直感的であり、プログラミングの世界全体で知られています。

于 2011-02-06T12:07:07.323 に答える
2

いいえ、できません。論理演算子に関する言語リファレンスについては、 http://www.php.net/manual/en/language.operators.logical.phpを参照し、ナビゲートして他のエイリアスを見つけてください。

ただし、 and の優先順位は&&and と||同じではないandことに注意してくださいor

于 2011-02-06T12:07:44.617 に答える
1

1 つのオプションは、ブール式をより明示的にすることです。

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

または、カスタムを実装することによってnot():

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

if(not($whatever && what())) // do_stuff...
于 2011-02-06T12:06:51.890 に答える
1

実は私も!オペレーターが苦手です。すべての開発者は理解していましたが、コードを読むたびに少し時間がかかりました。!したがって、演算子を使用しないことをお勧めします。しかし、それも依存します。

php 組み込み関数については、not 演算子のヘルパー関数をほぼ作成しました。

https://github.com/vuvanly/not-operators-helpers

于 2021-11-03T14:14:21.063 に答える
0

代替手段はありませんが、直感的ではない!書き方になる可能性があります。

if ($whatever - 1) {
}

問題の原因は、見落としがちですが、より目に見えるものである必要が!あります。次に、別の代替表記法は次のようになります。not

if (!!! $whatever) {

これがまだ単純に見える場合は、次を使用してください。

if (~$whatever & 1) {

バイナリ操作は常にプロフェッショナルに見えます;)

于 2011-02-06T12:09:10.557 に答える