php插件/包含问题

时间:2011-02-25 10:52:38

标签: 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语句中动态添加其他案例。

2 个答案:

答案 0 :(得分:0)

我认为你可以通过使用类和继承来更好地实现你想要做的事情。

http://www.monkeycancode.com/php/php-class-tutorial

答案 1 :(得分:-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始终是个好主意!