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

时间:2014-08-20 07:41:52

标签: php

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

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

匹配路由后使用explode()函数分割动作和控制器

$action = explode('@', $this->_action); 
//$this->_action = someAction@SomeController

现在我想打电话

$action[1]::$action[0]();

但是php认为我想调用静态字段而不是方法,有人可以告诉我如何将其称为方法吗?

2 个答案:

答案 0 :(得分:2)

您可以使用call_user_func()

试试这个:

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

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

答案 1 :(得分:0)

您可以这样称呼:

<?php

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

?>