2

我正在编写自己的框架(用于学习),并且正处于想要将参数传递给方法的阶段。目前我正在通过以下方式实现这一目标:

$params = array_slice($url, 1);
$class->{$method[1]}($params);

然后在我拥有的类的方法中$params = func_get_arg(0); 这可行但并不理想,我注意到在 Codeigniter 中您可以调用

http://domain.com/controller/method/p1/p2/p3...

然后在你得到这些的方法中

method($p1, $p2, $p3){}

这是我更喜欢的。我该如何设置?

ps:我的类都扩展了一个基类

4

3 回答 3

1

在引擎盖下,我打赌 CIcall_user_func_array()可以做到这一点:

call_user_func_array( array( $class, $method[1]), $params);

现在,根据数组中参数的数量,您可以使用您所暗示的方法:

method($p1, $p2, $p3){}

$params假设数组中有 3 个参数。

于 2012-07-18T21:23:50.693 回答
0

试试这个

call_user_func_array( array( $class, $method ), $params );
于 2012-07-18T21:23:37.870 回答
0

您是否尝试传递包含所有参数的数组,而不是尝试一一传递所有参数?

于 2012-07-18T21:24:54.263 回答