2013-08-20 164 views
0
switch(n){ 
case "badge01": 
case "badge02": 
case "badge03": 
case "badge04": 
case "badge05": 
//dosomething 
    break; 
} 

嗨上面的switch case語句,我想使用一個函數來運行多重循環來生成案例的名稱,所以我可以知道如何使用函數在這樣的開關case語句上生成?在多個案例運行功能的開關案例?

switch(n){ 
case badgenameloop(): 
//dosomething 
    break; 
} 

這有可能嗎?

感謝和抱歉我的英語不好。

回答

0

根據PHP Manual

殼體表達可以是計算結果爲簡單類型,即,整數或浮點數和字符串的任意表達式。數組或對象在這裏不能使用,除非它們被取消爲簡單類型。

恐怕你不能有一個case聲明一個循環,因此一個試圖浪費時間。

+1

遺憾的是,到了OP,這是真正的程序員不得不忍受那些單調的任務之一。 – DevlshOne

0

比如,你可以這樣做:

function badgenameloop($key) 
{ 
    switch($key){ 
     case "badge01": 
     case "badge02": 
     case "badge03": 
     case "badge04": 
     case "badge05": 
      echo "badge 1"; 
      break; 
    } 
} 

function badgename2loop($key) 
{ 
    switch($key){ 
     case "badge_2_01": 
     case "badge_2_02": 
     case "badge_2_03": 
     case "badge_2_04": 
     case "badge_2_05": 
      echo "badge 2"; 
      break; 
    } 
} 

$key = "badge_2_01"; 
switch($key){ 
    case badgenameloop($key): break; 
    case badgename2loop($key): break; 
} 
+0

對不起,但這不會很多邏輯,手工輸入所有的情況正是OP想要避免的,並且將它們從case語句移動到函數調用不會削減它。根據這個解決方案,他們仍然需要輸入每個案例 –