Re: [請益]請問switch/case問題

看板PHP作者 (高 見龍)時間15年前 (2010/11/10 14:14), 編輯推噓5(5012)
留言17則, 8人參與, 最新討論串3/7 (看更多)
※ 引述《jcinlo (印羅)》之銘言: : <center> : <?php : switch($score) : { : case ($_POST['score']>=85 and $_POST['score']<=100): : echo "超級優秀"; : break; : case($_POST['score']>=60 and $_POST['score']<85): : echo "還好啦"; : break; : case($_POST['score']>=0 and $_POST['score']<=59): : echo "要加油囉"; : break; : default: : echo "您打錯了"; : } : ?> 其實case裡並不是不能放條件判斷句 而是變成在switch的地方就不是放要比對的$score了 直接在switch裡放個true,應該就會正常執行了 switch(true) { case ($_POST['score']>=85 and $_POST['score']<=100): echo "超級優秀"; break; case($_POST['score']>=60 and $_POST['score']<85): echo "還好啦"; break; case($_POST['score']>=0 and $_POST['score']<=59): echo "要加油囉"; break; default: echo "您打錯了"; } 供你參考 :) -- http://www.eddie.com.tw/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.5.183 ※ 編輯: aquarianboy 來自: 114.32.5.183 (11/10 14:14)

11/10 15:05, , 1F
實用
11/10 15:05, 1F

11/10 15:08, , 2F
溫馨
11/10 15:08, 2F

11/10 15:08, , 3F
這種語意(symantics)多奇怪 何必硬把case當if...else用
11/10 15:08, 3F

11/10 15:10, , 4F
其實是沒必要,只是依原po的寫法,只要改一下就能動了
11/10 15:10, 4F

11/10 15:11, , 5F
原來case可以這樣用O.O
11/10 15:11, 5F

11/10 15:12, , 6F
只是在原文的推文裡有提到case不能用條件句,但事實上
11/10 15:12, 6F

11/10 15:12, , 7F
是可以的 :)
11/10 15:12, 7F

11/10 15:24, , 8F
感謝aquarianboy大大解惑
11/10 15:24, 8F

11/10 16:05, , 9F
我認為還是不要推薦這種詭異的用法吧
11/10 16:05, 9F

11/10 16:06, , 10F
應該可以加註說 不建議這樣用~
11/10 16:06, 10F

11/10 16:42, , 11F
是的,不建議這樣用 :)
11/10 16:42, 11F

11/10 20:59, , 12F
以前我寫vb可以這樣用 但是 上php就沒看過有人這樣用以為不
11/10 20:59, 12F

11/10 21:00, , 13F
行這樣用,在PHP文件也沒看過有這種寫法
11/10 21:00, 13F

11/10 21:00, , 14F
學習了
11/10 21:00, 14F

11/11 17:49, , 15F
php的確不行這樣用 這樣寫只是一種模擬
11/11 17:49, 15F

11/11 17:49, , 16F
跟VB那種無敵鐵金剛式的select case差別還很遠
11/11 17:49, 16F

11/16 00:51, , 17F
VB 叫做無腦條件式吧.....
11/16 00:51, 17F
文章代碼(AID): #1CsZWlAp (PHP)
文章代碼(AID): #1CsZWlAp (PHP)