在某些MVC平台中,控制器方法接受URL的内容作为正斜杠分隔的元素列表,作为参数接收,例如
site.com/controller/method/var1/var2
有关联的控制器:
class Controller
function method(var1, var2){
}
}
但是我怎样才能实现这种编码呢?我希望从数组开始,并将参数化列表发送到函数,即
$args = array("one"=>"cheese","two"=>"eggs");
php_function("myfunction",$args);
在myfunction
内,我会
function myfunction($one, $two){
}
我知道func_get_args
接受了未知数量的参数。除{/ p>外,user_call_func
很有用
user_call_func("myfunction",$args);
...导致第一个参数包含一个参数数组,与函数内调用的func_get_args
没有区别。
extract
无法正常工作,因为我需要将数组作为函数内的变量接收。
答案 0 :(得分:1)
call_user_func_array
接受方法描述和参数数组,并返回调用函数的结果。我认为它将按顺序从数组中获取参数,而不是名称。在使用它之前,您应该以正确的顺序组装一个参数数组,并且可能验证缺少的参数。
答案 1 :(得分:0)
我已设法通过以下方式创建您的所需。
class BootStrap {
private $controller = 'NameOfIle.php';
private $method = 'function()';
private $params = array('sdfds' => 'dsfdsf', 'sdfdsfsdfdsfsd' => 'sdfdsfds');
public function __construct() {
call_user_func_array(array($this->controller, $this->method), $this->params);
}
}