<form action="" method="get"> <label for="score">请输入成绩:</label><input type="number" id="score" name="score" max="100" value=""> <button>提交</button> </form>
$init = $_GET['score']; switch($init){ case $init >=90 : echo '<p>厉害了,我的学霸!</p>'; break; case $init >=80 : echo '<p>再接再厉,努力吧!</p>'; break; case $init >=70 : echo '<p>差太多啦!得加油赶上了!!</p>'; break; case $init >=60 : echo '<p>建议你留级吧!!</p>'; break; default: break; }
明らかにまだフォームにパラメータが渡されていないのに、なぜ最初のケースが出力されるのでしょうか?このとき、$init 変数は空ですが、どうやって成功と判断できるのでしょうか? ?どうしたの? ?
何も入力せずに送信すると、送信された値は空になります。空の場合は切り替え条件を満たさないため、最初の CASE から実行が開始され、ブレークに遭遇するまで停止しません