Переход на PHP 5.3

В последнее время все больше и больше приходит писем от наших посетителей, которые установив последнюю версию PHP 5.3.1 получают в работающих проектах подобные ошибки:

Deprecated: Function eregi() is deprecated in ...

Неприятная ситуация, когда проект работает и застает врасплох. Хорошо, что большинство хостеров не так быстро делают переход с версии PHP 5.2. на PHP 5.3. Но надолго ли?

Что такое DEPRECATED? Это некоторые параметры, функции и возможности, которые обозначены как НЕИСПОЛЬЗУЕМЫЕ и в последующих версиях будут УДАЛЕНЫ.

Для начала конечно можно временно (повторюсь временно) можно выключить в файле php.ini данные предупреждения что бы сайт восстановил работоспособность и не выдавали так же ошибки вывода заголовков Headers (популярная ошибка новичков headers already sent) В PHP 5.3. для этого добавлено 2 уровня ошибок (error level) E_DEPRECATED и E_USER_DEPRECATED, которые и управляют выводом предупреждений (Warning)

Полный список изменений вы можете увидите на официальном сайте PHP Deprecated features in PHP 5.3.x

Следующие директивы php.ini будут отмечены как НЕИСПОЛЬЗУЕМЫЕ (DEPRECATED) в PHP 5.3 и удалены в PHP 6.0.0

  • define_syslog_variables - теперь всегда OFF.
  •  
  • register_globals - теперь всегда OFF. Наконец-то! =)
  •  
  • register_long_arrays - $HTTP_*_VARS навсегда уйдут в небытие.
  •  
  • safe_mode - безопасный режим. По умолчанию OFF.
  •  
  • magic_quotes_gpc
    magic_quotes_runtime
    magic_quotes_sybase - будут удалены при переходе версии.
  •  
  • Теперь в php.ini файле нельзя будет применять коментарии, начинающиеся с #
  •  

Так же следующие функции:

И следующие возможности:

  • В new передача параметра по ссылке в переменную
  •  
  • Вызов call-time функций, методов и классов по ссылке
  •  
  • Использование {} для указания смещения внутри строки. Теперь это можно сделать с помощью [] (как в массиве)
  •  

Следует позаботиться о замене функций аналогами, описанными выше и переписать скрипты.

форум портала PHP.SU
Scroll to Top
Ads: