if条件式の大小比較の書き方

変数を左辺に書く

一般的に使われている書き方ですね。

if ($x < 10) {

if ($x >= 10) {Code language: PHP (php)

左辺、右辺どちらも変数の場合、どちらを左辺にするのか迷います。

if ($x < $y) {

if ($x >= $y) {Code language: PHP (php)

範囲内かどうかの判別するとき、理解するまで少し時間がかかります。

if ($x >= 0 && $x < 100) {Code language: PHP (php)

範囲外かの判別も、理解するまで少し時間がかかります。

if ($x < 0 || $x >= 100) {Code language: PHP (php)

ところで、範囲内かの判定を次のようには書かないですね。

if ($x < 100 && $x >= 0) {Code language: PHP (php)

範囲外かの判定も次のようには書かないですね。

if ($x >= 100 || $x < 0) {Code language: PHP (php)

左側が小さく、右側が大きい、というぼんやりとしたルールはあるようね

小さいほうを左辺に書く

不等号の向きを「<」か「<=」、メソッドなら「lt」「le」「lessThan」「lessThanOrEquals」しか使わない方法です。

if ($x < 10) {

if (10 <= $x) {Code language: PHP (php)

あまり見ない書き方だね

少数派なのよ

左辺、右辺どちらも変数の場合でも、どちらを左辺にするのか迷いません。

if ($x < $y) {

if ($y <= $x) {Code language: PHP (php)

範囲内かどうかの判別も、読みやすいです。

if (0 <= $x && $x < 100) {Code language: PHP (php)

数学の教科書で見かける範囲指定「0 ≦ x < 100」と似ていて、理解しやすいですよね。

範囲外かの判別も、読みやすいです

if ($x < 0 || 100 <= $x) {Code language: PHP (php)

特に、日時の大小比較をするとき、この方法は効果があります。

左辺に過去、右辺に未来を書きます。

開始日時を過ぎたかどうかの判別は、

if ('2021-07-01 09:00:00' <= $nowDateStr) {
    // 開始日時をすぎたら、何かを表示・処理するCode language: PHP (php)

終了日時より前で、何かを表示・処理するかどうかの判別は、

if ($nowDateStr < '2021-08-01 09:00:00') {
    // 終了日時までは、何かを表示・処理するCode language: PHP (php)

開始日時と終了日時の間かどうかの判別は、

if ('2021-07-01 09:00:00' <= $nowDateStr && $nowDateStr < '2021-08-01 09:00:00') {Code language: PHP (php)

DateTime、Carbon、その他の日時クラスで比較するときも、左側に過去、右側に未来を書きます。

if (10 <= $x) の書き方は少数派だから、

レビューで指摘されたら、はいそうですね、と修正してね

このサイトさー、マイナーなルールばかりだね

タイトルとURLをコピーしました