在PHP中,當使用開關盒循環時,我可以使用for循環迭代盒子嗎? 例如使用開關盒循環時,我可以使用for循環迭代盒子嗎?
switch .....
foreach($xyz as $abc)
{
CASE:$abc
}
default;
UPDATE
我取出由DB值,這個值是表的名稱,使用「案例」我想執行根據特定查詢表名..
這可能嗎?
在PHP中,當使用開關盒循環時,我可以使用for循環迭代盒子嗎? 例如使用開關盒循環時,我可以使用for循環迭代盒子嗎?
switch .....
foreach($xyz as $abc)
{
CASE:$abc
}
default;
UPDATE
我取出由DB值,這個值是表的名稱,使用「案例」我想執行根據特定查詢表名..
這可能嗎?
您可能只想將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
}
即使您的數組有很多元素,它也具有更好的可讀性。
他問他是否可以動態生成CASE語句。 – Finbarr 2010-04-24 10:45:03
你說得對,這就是我想要做的,這可以做到,但我有大約32桌的一堆,他們都是Joomla表,你看他們有很多表,所以你提出的解決方案可以是非常長的看...其他任何事情你可以爲此建議? – 2010-04-24 10:46:45
@Finbarr:哦,現在我明白了。不。但*通常*(可能不總是),您可以通過更改循環來解決潛在的問題。謝謝,不過。 – pinkgothic 2010-04-24 10:48:25
我不認爲你可以用這種方式在PHP switch語句中動態生成CASE聲明。
你在說的是把所有的表都放在一個數組中,然後在switch語句中遍歷它們來自動聲明你的CASE語句。你不可以做這個。
它產生:
Parse error: syntax error, unexpected T_FOREACH, expecting T_CASE or T_DEFAULT
請詳細說明什麼意思動態生成在這裏在我的問題..可能你在這裏讓我錯了.. – 2010-04-24 10:49:21
看到我的編輯,你不能做你想做的事。 – Finbarr 2010-04-24 10:54:58
+1謝謝夥伴我有你的觀點..其實我是新編程術語.... – 2010-04-24 11:05:51
編輯:按業務方案的意見,如果你有太多的表,然後把這些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];
這裏執行邏輯來執行查詢
@reddy Saahab這可能是非常漫長的情況下,Joomla 32表hote海hameme .. ..蘭巴豪jayegaa ..錦鯉aur idea do plsss – 2010-04-24 10:53:18
@Parth,沒有其他辦法可以想到...... – 2010-04-24 10:56:43
Ÿ不使用它並檢查它? – nik 2010-04-24 10:31:42
是的,但使用,而不是案件 – 2010-04-24 10:32:32
@nik這裏的人在那裏做的經驗是什麼?讓我們檢查它? – 2010-04-24 10:33:29