2010-04-24 68 views
1

在PHP中,當使用開關盒循環時,我可以使用for循環迭代盒子嗎? 例如使用開關盒循環時,我可以使用for循環迭代盒子嗎?

switch ..... 

foreach($xyz as $abc) 

{ 
CASE:$abc 
} 

default; 

UPDATE

我取出由DB值,這個值是表的名稱,使用「案例」我想執行根據特定查詢表名..

這可能嗎?

+0

Ÿ不使用它並檢查它? – nik 2010-04-24 10:31:42

+0

是的,但使用,而不是案件 – 2010-04-24 10:32:32

+0

@nik這裏的人在那裏做的經驗是什麼?讓我們檢查它? – 2010-04-24 10:33:29

回答

1

您可能只想將switch聲明放入foreach

foreach ($tables as $table) { 
    switch ($table) { 
     case 'table_one' : 
      // do something here 
      break; 
     case 'table_two' : 
      // do something here 
      break; 
     case 'table_three' : 
      // do something here 
      break; 
     default : 
      // do some error handling here 
      break; 
    } 
} 

另外,開關並不那麼容易閱讀,考慮去從switch路程,使用陣列供電if,特別是如果你能動態創造你想要做的每case什麼:

$tables = array('table_one', 'table_two', 'table_three'); 
if (in_array($table, $tables)) { 
    // do something here 
} else { 
    // do some error handling here 
} 

即使您的數組有很多元素,它也具有更好的可讀性。

+2

他問他是否可以動態生成CASE語句。 – Finbarr 2010-04-24 10:45:03

+0

你說得對,這就是我想要做的,這可以做到,但我有大約32桌的一堆,他們都是Joomla表,你看他們有很多表,所以你提出的解決方案可以是非常長的看...其他任何事情你可以爲此建議? – 2010-04-24 10:46:45

+0

@Finbarr:哦,現在我明白了。不。但*通常*(可能不總是),您可以通過更改循環來解決潛在的問題。謝謝,不過。 – pinkgothic 2010-04-24 10:48:25

2

我不認爲你可以用這種方式在PHP switch語句中動態生成CASE聲明。

你在說的是把所有的表都放在一個數組中,然後在switch語句中遍歷它們來自動聲明你的CASE語句。你不可以做這個。

它產生:

Parse error: syntax error, unexpected T_FOREACH, expecting T_CASE or T_DEFAULT

+0

請詳細說明什麼意思動態生成在這裏在我的問題..可能你在這裏讓我錯了.. – 2010-04-24 10:49:21

+0

看到我的編輯,你不能做你想做的事。 – Finbarr 2010-04-24 10:54:58

+0

+1謝謝夥伴我有你的觀點..其實我是新編程術語.... – 2010-04-24 11:05:51

1

編輯:按業務方案的意見,如果你有太多的表,然後把這些querys在陣列我寫這個答案

$query=null; 
    switch($tableName): 
    { 
    case "table1": 
    $query="..."; 
    break; 
    case "table2": 
    $query="..."; 
    break; 
    case "table3": 
    $query="..."; 
    break; 
    } 
    .... 

here goes logic to execute that query 

像這樣檢查,

$arr = array("table1"=>"query1","table2"=>"query2","table3"=>"query3",....); 
$query = $arr[$tableName]; 

這裏執行邏輯來執行查詢

+0

@reddy Saahab這可能是非常漫長的情況下,Joomla 32表hote海hameme .. ..蘭巴豪jayegaa ..錦鯉aur idea do plsss – 2010-04-24 10:53:18

+0

@Parth,沒有其他辦法可以想到...... – 2010-04-24 10:56:43