Возможный дубликат:
Можно ли передавать параметры по ссылке с помощью 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, чтобы я мог динамически связывать переменные во время выполнения?