Хорошо, это странная проблема, поэтому, пожалуйста, потерпите меня, как я объясню.
Мы обновили наши серверы разработки с 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).
Кто-нибудь испытывал это? Как я могу обойти это?
Спасибо.