将params传递给url中的方法

时间:2012-07-18 21:16:42

标签: php url

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

$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:我的类都扩展了基类

3 个答案:

答案 0 :(得分:1)

在幕后,我打赌CI使用call_user_func_array()来执行此操作:

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

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

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

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

答案 1 :(得分:0)

尝试this

call_user_func_array( array( $class, $method ), $params );

答案 2 :(得分:0)

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