Ric*_*ard 1 php oop fatal-error
我正在寻找一个相当于PHP的功能call_user_func.我遇到这个函数的问题是它没有进入"对象模式".通过这个,我的意思是我不能$this在课堂上使用和其他东西,所以几乎用两个词:不是oop.
我基本上需要这个,因为我正在处理请求的URL,解析它,并查看一切是否正常等等,然后执行以下行:
call_user_func(array(ucfirst( $controller . "Controller" ), '_initAction'), $param);
call_user_func(array(ucfirst( $controller . "Controller" ), $action . 'Action'), $param);
Run Code Online (Sandbox Code Playgroud)
因为我想动态调用"Controller"它的动作.但我不能$this在$action方法中使用,因为它不是OOP.
我收到的消息:
Fatal error: Using $this when not in object context in E:\htdocs\wit\application\controller\InformationController.php on line 6
Run Code Online (Sandbox Code Playgroud)
所以我希望有人可以帮助我.
你能否告诉我,我是否以错误的方式处理这个问题?
PS:请不要向我推荐任何处理这些东西的MVC框架.我喜欢Zend,但有时候,它太沉重了:((我需要一个轻量级的设置.
Ale*_*hov 10
您可以通过在回调的第一个元素中传递对象来调用object方法:
$class = ucfirst($controller . "Controller");
$controller = new $class();
call_user_func(array($controller, $action . 'Action'), $param);
Run Code Online (Sandbox Code Playgroud)
实际上,你甚至可以使用
$controller = new $class();
$controller->{$action . 'Action'}();
Run Code Online (Sandbox Code Playgroud)