phpで数字を指定し、その数字が指定した時間の範囲内に含まれているかどうかを調べるプログラムを書いています。(ソースコードは一番下にあります。)
第一引数で数字の指定、第二引数で開始時間、第三引数で終了時刻をしていしています。
理想 $ php test.php >6 20 8 >6は指定した時間の範囲内に含まれています
コードを書いてみたのですが実行すると以下のようになりました。
$ php test.php >5 2 7 >6は指定した時間の範囲内に含まれています。 pattern1 >6 20 8 >6は指定した時間の範囲内に含まれていません。 pattern2
「5 2 7」のときは良いのですが、「6 20 8」を指定したとき、この時20がtime[1]に、8がtime[2]に代入されていると思うのですが、なぜ比較するとtime[1] <= time[2]の判定がTrueになってしまうのでしょうか?
原因がわかりません。phpの配列の要素を比較するときはなにか別の方法を使う必要があるのでしょうか?
test
1<?php 2$ans = fgets(STDIN); 3$time = explode(" ", $ans, 3); 4if($time[0] > 23 || $time[0] < 0){ 5 echo "0~23の数字を入力してください"; 6 return; 7} 8if($time[1] <= $time[2]){ 9 if($time[0] >= $time[1] && $time[0] < $time[2]){ 10 echo $time[0]; 11 echo "は指定した時間の範囲内に含まれています。"; 12 echo "pattern1"; 13 return; 14 }else{ 15 echo $time[0]; 16 echo "は指定した時間の範囲内に含まれていません。"; 17 echo "pattern2"; 18 } 19}elseif($time[1] > $time[2]){ 20 if($time[0] <= $time[1] && $time[0] < $time[2]){ 21 echo $time[0]; 22 echo("は指定した時間の範囲内に含まれています。"); 23 echo "pattern3"; 24 }else{ 25 echo $time[0]; 26 echo "は指定した時間の範囲内に含まれていません。"; 27 echo "pattern4"; 28 } 29} 30?>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。