Передача по ссылке проблема с PHP 5.3.1
Хорошо, это странная проблема, поэтому, пожалуйста, потерпите меня, как я объясню.
Мы обновили наши dev-серверы с PHP 5.2.5 до 5.3.1.
Загружая наш код после переключения, мы начинаем получать ошибки, такие как:
Warning: Parameter 2 to mysqli_stmt::bind_param() expected to be a reference, value given in /home/spot/trunk/system/core/Database.class.php on line 105
упомянутая строка (105) выглядит следующим образом:
call_user_func_array(Array($stmt, 'bind_param'), $passArray);
мы изменили строку на следующее:
call_user_func_array(Array($stmt, 'bind_param'), &$passArray);
на данный момент (потому чтоallow_call_time_pass_reference
) выключен, php выдает это:
Deprecated: Call-time pass-by-reference has been deprecated in /home/spot/trunk/system/core/Database.class.php on line 105
После попытки исправить это в течение некоторого времени, я сломался и установилallow_call_time_pass_reference
вкл.
Что избавился отDeprecated
предупреждение, но теперьWarning: Parameter 2 to mysqli_stmt::bind_param() expected to be a reference
предупреждение бросает каждый раз,с или без ссылки.
Я понятия не имею, как это исправить. Если бы целевой метод был моим, я бы просто сослался на входящие переменные в объявлении func, но это (относительно) нативный метод (mysqli).
Кто-нибудь испытывал это? Как я могу обойти это?
Спасибо.