Pull to refresh

Переход к PHP 5.3

Reading time 3 min
Views 6.7K
Original author: Cal Evans
Некоторые из тех, кто разрабатывает приложения на PHP уже скачали и начали тестировать новые возможности самого крупного изменения в языке за последние 7 лет, но большую часть разработчиков интересуют отнюдь не новые фишки, которые можно будет применить в грядущих разработках, а изменения которые повлияют на работу уже написанных приложений.

Обновленно:
  • В конце статьи есть так же некоторая информация о том как можно отметить сие славное событие в Мюнхене.
Хорошая новость заключается в том что если вы писали код в соответствии с современными тенденциями, то ваши приложения затронет совсем немного изменений. Тех же, чей код ориентирован на более ранние версии языка, ждут веселые времена. В статье приводится список основных моментов на которые стоит обратить внимание разработчикам портирующим приложения с PHP 5.2.

Приведенный список нововведений не является конечным, но в интернетах в общем и в changelog в частности вы сможете найти исчерпывающую информацию по новым возможностям и изменениям.

Функции работы с массивами


До версии 5.3 многие из функций работы с массивами в качестве агрументов могли принимать как массив, так и объект и в результате давать желаемый результат. В 5.3 многие из них теперь принимают только массивы. Если вы хотите обратиться к свойствам объекта с помощью любой из функций представленных ниже — вам потребуется предварительно преобразовать объект в массив.

Изменения волшебных методов


До 5.3 эти методы могли быть объявлены не только как публичные, но и как частные, защищенные статичные и т.п. Начиная с 5.3 методы указанные ниже не могут быть статичными и обязаны быть публичными:
  • __get()
  • __set()
  • __isset()
  • __unset()
  • __call()

Минздрав предупреждает


PHP появился перечень функций, которые были отмечены для удаления. Большинство из них не общего пользования, но тем не менее вам стоит проверить код на факт их отсутствия. Этими функциями являются:
Кроме того, ряд директив в PHP.INI постигла такая же участь, они будут теперь выбрасывать E_DEPRECATED предупреждения при активировании:
  • define_syslog_variables
  • register_globals
  • register_long_arrays
  • safe_mode
  • magic_quotes_gpc
  • magic_quotes_runtime
  • magic_quotes_sybase
В версии 5.0, метод is_a() был отмечен как не рекомендуемый в пользу instanceof, но не смотря на это не был убран из языка, да плюс ко всему перестал выбрасывать E_DEPRECATED.

Стол заказан


Следующие 2 слова теперь являются зарезервированными:
С учетом характера этих двух ключевых слов, очень маловероятн, что они есть в вашем коде, тем не менее, было бы неплохо просканировать кода на их наличие. Если они существуют — парсер будет гураццо, так как он плохо понимает РНР ©. В общем они не могут быть использованы в качестве имен функций, имена классов и т. п.

На этом все, более детальную информацию ищите в руководстве по переходу на 5.3 и комментариях к новости о выходе релиза, так же если кто уже помацал новую версию — обязательно оставьте комментарий через форму ниже.

Progg it

PHP 5.3 BBQ Release Party München


Для братьев славян проживающих в Мюнхене (Германия), или неподалеку: PHP 5.3 BBQ Release Party München 17 июля 2009. нем. англ.

image

Спонсоры PHP 5.3 BBQ:При поддержке:P. S.
В продолжение темы про GOTO один из комментариев к оригинальной статье:
  1. goto future;
  2. echo ‘PHP 5.2.x’;
  3.  
  4. future:
  5. echo ‘PHP 5.3.x’;
Спонсор позитива — старый добрый русский фольклор и децел отличного ska.
Tags:
Hubs:
+29
Comments 77
Comments Comments 77

Articles