only variables can be passed by reference

Labutin

Новичок
only variables can be passed by reference

PHP 4.4.9
Скомпилирован лично.
В коде во многих местах есть конструкция:
вызов
$partsManager->setDataBase($system->getDataBase());

метод
function setDataBase ( &$dataBase )
{
$this->_dataBase = $dataBase;
}
Все работало много лет. Вдруг внезапно сегодня полезли Warning'и
only variables can be passed by reference
Согласен, что warning в принципе имеет право быть.
Суть вопроса в том - ПОЧЕМУ его не было раньше? Сам PHP никто не менял (я админ на сервере). php.ini не правили.
Не понимаю, что за аномалия?! :( Как такое может быть?
 

dimagolov

Новичок
еще один геронтофил подтянулся...

если тебе ТОЛЬКО нужно передать объект по ссылке (что следует из твоего кода), то поставь php 5, он всегда передает объекты по ссылкам
 

Labutin

Новичок
переход на php5 планируется - там есть места, которые просто так не заработали :(
вопрос не в том, как побороть, а в том, что такое произошло?
 

dimagolov

Новичок
Labutin, ну кто же кроме тебя может и будет разбирать в том, что за ископаемая версия была у тебя и какие изменения произошли в 4.4.9 по сравнению с ней?
 

Labutin

Новичок
error_reporting(E_ALL) стоит с самого зарождения этого сайта
сайт написан так, что даже нет ни одного Notice
 

damngood

Мозг был, но ушел...
Labutin
минус вам, уважаемый, на работающих сайтах (продакшн версия) это недопустимо.

Если нет желания видеть варнинги, но все работает - отключи ошибки, и скорее мигрируй на ветку php5
 

Beavis

Banned
Автор оригинала: damngood
Labutin
минус вам, уважаемый, на работающих сайтах (продакшн версия) это недопустимо.
это тебе минус! на продакшене error_reporting должен быть такой же, а вот display_errors должен быть равен нулю, и вместо этого писать ошибки в лог
 
Сверху