我有一行代码,在PHP 5.1中可以工作,但在PHP 5.3中无法工作。
$input = array('ss','john','programmer');
call_user_func_array(array($mysqli_stmt, 'bind_param'), $input);
在PHP 5.3中,我收到如下警告消息:
我将代码更改为以下内容,就可以运行:警告:在/var/www/startmission/em/class/cls.data_access_object.php的第785行,mysqli_stmt :: bind_param()的第2个参数期望是引用,但却传递了值。
$a = 'johnl';
$b = 'programmer';
$mysqli_stmt->bind_param('ss',$a,$b);
我在php文档中找到了这个内容:
注意,在使用mysqli_stmt_bind_param()和call_user_func_array()时需要小心。请注意,mysqli_stmt_bind_param()要求通过引用传递参数,而call_user_func_array()可以接受表示引用或值的变量列表作为参数。
那么我的问题是,我该如何复制call_user_func_array + bind_params的功能,以便我可以在运行时动态绑定变量?