我正在编写自己的MVC框架,我需要调用静态函数
我在像这样的ini文件中定义了路由
[someAction]
route[] = /someroute
layout = layoutname
action[] = someAction@SomeController
匹配路由后使用explode()函数分割动作和控制器
$action = explode('@', $this->_action);
//$this->_action = someAction@SomeController
现在我想打电话
$action[1]::$action[0]();
但是php认为我想调用静态字段而不是方法,有人可以告诉我如何将其称为方法吗?
答案 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();
?>