[php] deprecated в 5.3 [closed]

Sharp

Поставил себе WebCalendar, но он видимо писался под ранние версии PHP, а у меня стоит PHP версии 5.3, поэтому получил кучу ошибок про depricated.
Различные ereg-и я уже переписал на preg-и, вроде работает.
Но помимо этого получаю ошибку:
PHP Deprecated:  Assigning the return value of new by reference is deprecated in 
/usr/local/www/webcalendar/includes/functions.php on line 5039

$item =& new RepeatingEvent (...  

Таких конструкций во всем проекте не много, так что мне даже не лень их заменить на что-то правильное.
В общем, кто разбирается в PHP: в чем смысл этой конструкции и на что ее по правильному надо менять? Подскажите, пожалуйста.

Phoenix

ну попробуй & выкинуть.
PS с пхп дел не имел года 2, так что может и глупость сказал.

Sharp

Хочется не только чтобы сообщение пропало, хочется при этом не нарушить логики работы :)
в общем, хотелось бы узнать для чего это? Если это какой perfomance tweak в ранних версиях PHP, тогда да, смело выкину. Но если эта операцию имеет какую-то смысловую нагрузку, то очень не хочется разбираться "почему все перестало работать".

Phoenix

чтобы сообщение пропало гуру игнора советуют в начале программы написать
error_reporting(0);  

это синтаксис php4. в 5 всё по ссылкам и так передаётся вроде.

Sharp

в 5 всё по ссылкам и так передаётся вроде.
Ладно, попробую тогда просто убрать амперсанд и посмотрю сломается что-то или нет.

PooH

в чем смысл этой конструкции
& - это взятие ссылки (что-то вроде указателя в сях)
в 5й версии вроде по умолчанию объекты передаются по ссылке и & - лишний, можно убрать, но не уверен

Sharp

Спасибо всем откликнувшимся!
Попутно нашел в интернетах статейку http://matthom.com/archive/2009/10/07/various-php-5-3-deprec...
там рекомендуют:

$this->files['error'] = &new HTTP_Upload_File( ...

менять на

$this->files['error'] = null;
$this->files['error'] = new HTTP_Upload_File( ...
Оставить комментарий
Имя или ник:
Комментарий: