php5.3 - mysqli_stmt: bind_params с предупреждениями call_user_func_array [дубликат]

Возможный дубликат:
Можно ли передать параметры по ссылке с помощью call_user_func_array ()?

У меня есть следующая строка кода, которая работает в PHP 5.1, но не работает в PHP 5.3.

$input = array('ss','john','programmer');
call_user_func_array(array($mysqli_stmt, 'bind_param'), $input);

В PHP 5.3 я получаю следующее предупреждение:

Предупреждение: параметр 2 для mysqli_stmt :: bind_param () должен быть ссылкой, значение указано в /var/www/startmission/em/class/cls.data_access_object.php в строке 785

Я изменил код на следующее, и это сработало:

$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, чтобы я мог динамически связывать переменные во время выполнения?

Ответы на вопрос(1)

Ваш ответ на вопрос