mysqli_bind_param的包装方法

时间:2013-10-29 12:24:49

标签: php mysqli

我正在编写一个数据库包装类,需要类似:

public function bind($types, $params, ...) {
    $this->prep->bind_param($types, $params, ...);
}

如何让参数变得动态,有N-params?

我知道函数func_get_args()但没有帮助,我可以获取参数,但是如何传递?

3 个答案:

答案 0 :(得分:1)

在我的头顶,你可以使用call_user_func_array()

来做到这一点
public function bind() {
  $args=func_get_args();
  $method=array($this->prep,'bind_param');
  call_user_func_array($method,$args);
}

答案 1 :(得分:1)

函数call_user_func_array应该是您所需要的,类似于以下内容:

public function bind () {
    $args = func_get_args();
    call_user_func_array(array($this->prep, "bind_param"), $args);
}

call_user_funccall_user_func_array有时会比直接调用方法慢一点,遗憾的是,除了前几个参数中的硬代码之外,你无法做到这一点。

答案 2 :(得分:1)

使用一个数组,我建议你使用经典的方法,并保留一些“核心”参数远离数组,而不是像这样将数组中的选项放在数组中:

function function(Class $object, array $options = array()){

}