我有这段代码
public function bind_array($array) {
$array=[1,"bob"];
$type = '';
foreach ( $array as $var ) {
switch (true) {
case is_int ( $var ) :
$type .= "i";
break;
case is_double ( $var ) :
$type .= "d";
default :
$type .= "s";
}
}
$param_array [] = &$type;
for($i = 0; $i < count ( $array ); $i ++) {
$param_array [] = &$array [$i];
}
call_user_func ( array ($this->stmt,'bind_param' ), $param_array );
}
我总是得到错误的参数计数错误。这里有什么错误?
如果我将最后一行改为
call_user_func ( array ($this->stmt,'bind_param' ), 'is',1,"bob" );
一切都好。
感谢您的帮助。
答案 0 :(得分:1)
只需使用call_user_func_array
代替call_user_func
,因为您正在传递数组。
call_user_func_array ( array ($this->stmt,'bind_param' ), $param_array );
以下是official docs。