Состоялся релиз PHP 7.4

29 ноября 2019, 10:28

После года разработки представлен релиз языка программирования PHP 7.4, пишет OpenNET. Новая ветка включает серию новых возможностей, а также несколько изменений, нарушающих совместимость.

Ключевые улучшения в PHP 7.4:

  • типизированные свойства — свойства классов теперь могут включать объявления типов;
  • сокращённый синтаксис определения функций «fn(parameter_list) => expr» с привязкой области видимости по значению;
  • сокращённый оператор присвоения «? =», который может использоваться для определения значения по умолчанию;
  • ограниченная возможность сохранения иерархии наследования типов в производных от них типах возвращаемых значений или возможность преобразования иерархии исходных типов на противоположную в производных типах аргументов;
  • оператор распаковки внутри массивов «…$var», позволяющий выполнять подстановку существующих массивов при определении нового массива;
  • возможность наглядного оформления больших чисел с разделителями в числовых литералах (1_000_000_00);
  • поддержка слабых ссылок, позволяющих сохранить ссылку на объект, но не блокирующих удаление связанного объекта сборщиком мусора;
  • новый механизм сериализации объектов (комбинация Serializable и __sleep()/__wakeup()), пришедший на смену интерфейсу Serializable, который будет объявлен устаревшим;
  • разрешена генерация исключений из метода __toString();
  • добавлена поддержка упреждающей загрузки кэша объектного кода. Для настройки добавлен параметр opcache.preload, через который можно указать PHP-скрипт, который будет скомпилирован и запущен при запуске сервера. Данный скрипт может загрузить опкод других файлов через их прямое включение или при помощи функции opcache_compile_file();
  • в расширение Hash добавлена функция crc32c для вычисления контрольных сумм с использованием полинома Кастаньоли;
  • в функцию password_hash() добавлена поддержка методов хэширования паролей argon2i и argin2id, в реализации библиотеки Sodium, если PHP собирается без libargon;
  • добавлена функция mb_str_split(), аналогичная str_split(), но оперирующая не байтами, а позициями символов в многобайтовой строке;
  • в функции strip_tags() добавлена возможность передачи массива с именами тегов;
  • в proc_open() разрешено перечисление операндов в массиве, вместо указания строки для запуска, а также реализована возможность перенаправления потоков и поддержка нулевого файлового дескриптора;
  • из базовой поставки исключены расширения Firebird/Interbase, Recode и WDDX. Данные расширения теперь распространяются через PECL;
  • ряд функций и возможностей переведён в разряд устаревших.

31 вакансия для PHP-разработчиков с зарплатой до 4000$.

подписка на главные новости 
недели != спам
# ит-новости
# анонсы событий
# вакансии
Обсуждение