否定のor と andの否定

否定のor

if(!$a || $b !== $c) {
    // 
}

andの否定

if(!($a && $b === $c)) {
    // 
}

勝手に名前を付けているが、どちらが可読性が高いのかという疑問。

宗教論争的な話になると思うから、深くは考察しないけど、個人的には前者。

理由としては

  • and は 全ての条件を見る必要があり、否定の条件を加えるスタックが読んでて精神的に辛い

  • or は否定が入ってても、一つずつ脳内で処理できるから、精神的に楽

※リーダブルコード的には後者が良しとされているのかな?