Php 简单的动态路由器获取方法';行不通

Php 简单的动态路由器获取方法';行不通,php,Php,我正忙着做一个小测试用例,想制定自己的路线。因此,当我执行www.domain.com/users时,我希望使用名为。因此,我可以将数据从索引方法传递到视图/模板 如何在路由中动态获取$class->index() Router::route('/users' , 'UsersController@index'); Router::execute($_SERVER['REQUEST_URI']); class Router { private static $routes = arr

我正忙着做一个小测试用例,想制定自己的路线。因此,当我执行
www.domain.com/users
时,我希望使用名为。因此,我可以将数据从索引方法传递到视图/模板

如何在路由中动态获取
$class->index()

Router::route('/users' , 'UsersController@index');
Router::execute($_SERVER['REQUEST_URI']);

class Router {

    private static $routes = array();

    private function __construct() {}
    private function __clone() {}

    public static function route($pattern, $callback) {
        $pattern = $pattern;
        self::$routes[$pattern] = $callback;
    }

    public static function execute($url) {
        foreach (self::$routes as $pattern => $callback) {
            if($pattern==$url){
                $callback = explode('@' , $callback);

                $fullclass = __NAMESPACE__ . '\\Controllers\\' . $callback[0];
                $class = new $fullclass;
                ---- Here is my problem ----
                $method = "index()";
                $class->$method.'()';
            }
        }
    }
}

您的代码可以这样重写:

$method = "index";
$class->$method();
请看这里:

此外,请阅读此处:
// Call the $foo->bar() method with 2 arguments
$foo = new foo;
call_user_func_array(array($foo, "bar"), array("three", "four"));