gpt4 book ai didi

PHP call_user_func 替代

转载 作者:行者123 更新时间:2023-12-05 00:42:15 26 4
gpt4 key购买 nike

我正在寻找一个在 PHP 中与其功能 call_user_func 相当等效的功能。我遇到的这个函数的问题是它没有进入“对象模式”。我的意思是我不能在类里面使用 $this 和其他东西,所以几乎用两个词来表示:not oop。

我基本上需要这个,因为我正在处理请求的 url,解析它,看看是否一切正常等等,然后执行以下几行:

call_user_func(array(ucfirst( $controller . "Controller" ),  '_initAction'), $param);       
call_user_func(array(ucfirst( $controller . "Controller" ), $action . 'Action'), $param);

因为我想动态调用 "Controller" 及其操作。但我不能在 $action 方法中使用 $this 因为它不是 OOP。

这是我收到的消息:

Fatal error: Using $this when not in object context in E:\htdocs\wit\application\controller\InformationController.php on line 6

所以我希望有人可以帮助我。

如果我以错误的方式处理这个问题,您能告诉我吗?

PS:请不要向我推荐任何处理这些东西的 MVC 框架。我喜欢 Zend,但有时它太重了 :(( 我需要一个轻量级的设置。

最佳答案

您可以通过在回调的第一个元素中传递对象来调用对象方法:

$class = ucfirst($controller . "Controller");
$controller = new $class();
call_user_func(array($controller, $action . 'Action'), $param);

其实你甚至可以使用

$controller = new $class();
$controller->{$action . 'Action'}();

关于PHP call_user_func 替代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5710494/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com