(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」みたいにしてあげると後々嬉しいことが多いです
まとめ
否定のフラグを作ってしまいそうになったら肯定のフラグに作り直しましょう