お世話になります。
表題の件について、色々考えたのですが答えが出ないので質問させてください。
時間帯によって背景色を変えるプログラム(class名を吐き出しCSSで色をつける)を書いているときに、
IF文で書くと非常に見づらくなってしまいました。
そこで、switch文を利用し以下のようにしました。
PHP
1public function get_background_class() { 2 $hour = date("H"); 3 4 if ($hour >= 22) { 5 return "midnight"; 6 } else if ($hour >= 18) { 7 return "night"; 8 } else if ($hour >= 16) { 9 return "evening"; 10 } else if ($hour >= 10) { 11 return "noon"; 12 } else if ($hour >= 7) { 13 return "morning"; 14 } else { 15 return "midnight"; 16 } 17} 18 19↓ 20 21public function get_background_class() { 22 $hour = date("H"); 23 24 switch(true) { 25 case $hour >= 22: 26 return "midnight"; 27 case $hour >= 18: 28 return "night"; 29 case $hour >= 16: 30 return "evening"; 31 case $hour >= 10: 32 return "noon"; 33 case $hour >= 7: 34 return "morning"; 35 default: 36 return "midnight"; 37 } 38}
elseのせいでズレていた条件の書かれている場所が、switchの方だときれいに揃い非常に見やすくなったのですが、
この書き方はあまりよろしくないという記事も拝見し(具体的にどう悪いとかは明記されておらず)
であれば、このような連続する条件分岐はどのように書くのが正解なのかと思った次第です。
このあたり個人的な趣味嗜好も絡んでくるでしょうが、こちらのほうがいいよという書き方があれば
参考にさせていただきたいです。
回答8件
あなたの回答
tips
プレビュー