4
1

More than 3 years have passed since last update.

ちょっとお兄ちゃん?否定のフラグは絶対作らないでって言ったよね?

Posted at

(CV: 渡部恵子)

普通のフラグ

<?php
$is_a = true;

if($is_a){
    // Aだったら
    var_dump('Aでした');
} else {
    // Aじゃなかったら
    var_dump('Aではありませんでした');
}

否定のフラグ

<?php
$is_not_a = true;

if($is_not_a){
    // Aじゃなかったら
    var_dump('Aではありませんでした');
} else {
    // Aじゃない、じゃなかったら
    var_dump('Aじゃない、ではありませんでした'); // 脳内変換(あぁ、要するにAだったのね)
}

否定のフラグはfalseだった場合に「notのフラグのfalseだからつまりtrueってことか?」っていう脳内変換が必要になります

例だと「Aじゃない、じゃない」というフラグなので「こんなフラグ誰も作らないでしょ」と思うかもしれません
実際には「未入金かどうか」を「is_not_payment」とかやっちゃうパターンがあるあるです
こうしてしまうと「is_not_paymentがfalseだから未入金じゃない、つまり入金済みってことか」みたいな脳内変換が発生します
この場合は「入金済みかどうか」のフラグ「is_payment」みたいにしてあげると後々嬉しいことが多いです

まとめ

否定のフラグを作ってしまいそうになったら肯定のフラグに作り直しましょう

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1