我正在编写自己的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();
?>