2011-02-25 84 views
0

我試圖爲我的應用程序製作一個插件系統,但我遇到了一些麻煩。php插件/包含問題

我想弄清楚如何使用插件類動態地將其他開關塊添加到switch語句。

下面是我正在嘗試做的一個基本示例,有誰知道我該如何實現這個目標?

switch($_GET['section']){ 
    default: 
     // code here 
    break; 

    case 'test': 
     // code here 
    break; 

    $plugins->run('page'); 

} 

class plugins { 
    function run($section){ 
     if($section=='page'){ 
      case 'test2': 
       // code here 
      break; 
     } 
    }  
} 

插件類中的case語句是我想返回到原始switch語句的。所以在插件類中,我可以添加可以包含在原始switch語句中的其他案例。

所以我想基本上只是想知道是否有可能動態地添加額外的情況下的switch語句。

+0

你不能做到這一點。你應該重新思考你的問題。爲什麼不將完整的switch語句打包到你的插件類中並動態運行呢? – JohnP 2011-02-25 10:55:53

+1

我真的很困惑。 「插件」是什麼意思?爲什麼'case'test2':'本身,而不是'select'? – Savetheinternet 2011-02-25 10:56:24

+0

@誰低估了這個,這不是一個壞問題。這是一個關於一個不好主意的相關和明確的問題:) – Matt 2011-02-25 11:07:11

回答

-1

這是錯誤的語法:

if($section=='page'){ // WRONG! 
    case 'test2': 
     // code here 
    break; 
} 

你可以這樣說:

switch ($section) { 
    case 'page': 
     switch ($whatever) {  
       case 'test': 
        // do something 
       break; 
     } 
    break; 

    default: 
     // do default stuff 
    break; 
} 

它總是使用switch而不是if else一個好主意!