如何调用变量中定义的静态函数


How to call static function defined in variable?

我正在编写自己的MVC框架,我需要调用静态函数
我在ini文件中定义了路由,像这样

[someAction]
route[] = /someroute
layout = layoutname
action[] = someAction@SomeController

匹配路由后,使用explosion()函数拆分动作和控制器

$action = explode('@', $this->_action); 
//$this->_action = someAction@SomeController
而现在我想调用
$action[1]::$action[0]();

但是php认为我要调用静态字段而不是方法,谁能告诉我怎么调用方法呢

您可以使用call_user_func()

Try this:

call_user_func(array($action[1],$action[0]));

编辑:根据你的PHP版本,PeeHaa的评论是一个好主意

可以这样调用:

<?php
    list($action, $controller) = explode('@', $this->_action);
    $controller::$action();
?>