Группа энтузиастов во главе с датским программистом Лердорформ Расмусом выпустили восьмую версию скриптового языка программирования PHP. Релиз состоялся 26 ноября 2020 года, почти на год раньше, чем планировалось. По сравнению с предыдущей версией PHP 8 получил несколько серьезных улучшений, включая применение JIT-компилятора и существенную доработку «синтаксического сахара», позволяющую уменьшить объем шаблонного кода.
Разработка языка программирования PHP ведется с 1995 года. Основной сферой его применения является разработка динамических веб-сайтов с исполнением кода на серверной стороне. При этом доступна и компиляция программ, написанных на PHP, для исполнения на UNIX-операционных системах и в среде Windows. Существенное влияние на синтаксис PHP оказали несколько языков программирования, включая C++ и Java.
Наиболее существенным изменением в версии PHP 8 стало использование JIT-компилятора. Он позволяет переводить код программы в машинный код в режиме реального времени непосредственно во время исполнения программы. Таким образом для некоторых случаев удается повысить скорость исполнения приложений. В случае с PHP 8 наибольший прирост скорости с помощью JIT-компилятора достигается при выполнении математических операций.
Еще одним практичным улучшением в PHP 8 стало добавление выражения match. В целом оно работает аналогично традиционному switch, однако, в отличие от последнего, использует строгое сравнение значений. При этом результат работы match может быть сохранен в переменную и использован в дальнейшем или возвращен, например, с помощью функции echo. В отличие от switch, выражение match работает с однострочными выражениями, не требующими конструкции break.
В PHP 8 также появились именованные аргументы для использования в библиотеках или ассоциативных массивах. Это нововведение, в отличие от PHP 7, использует самодокументируемые аргументы, что позволяет использовать их в любом порядке, пропуская необязательные параметры. Это положительно сказывается на читаемости кода и его объеме, особенно если речь идет об использовании библиотек, работающих с булевыми параметрами.
Еще в PHP 8 появилась возможность использовать структурные метаданные с нативным синтаксисом PHP вместо аннотаций PHPDoc. Благодаря этому, например, при написании метаданных можно будет использовать подсказки среды разработки. Кроме того, в PHP 8 стали возможными одновременное объявление и инициализация свойств в конструкторе класса. В некоторые случаях это позволяет сократить объем кода втрое.
Наконец, еще одним существенным изменением в PHP 8 стало использование нового оператора Nullsafe, который записывается занком ? после обрабатываемого элемента. Это избавляет, например, от необходимости прописывать проверку на null для каждой переменной, используя вместо этого последовательность вызовов с оператором Nullsafe. В этом случае, если хотя бы один элемент возвращает значение null, вся последовательность вернет null.
С более полным списком нововведений в PHP 8 и документацией по ним можно ознакомится в сообщении о релизе.
В середине 2018 года британский разработчик Дилан Битти представил новый динамический язык программирования Rockstar. Его синтаксис вдохновлен известными рок-песнями 80-х годов.
Василий Сычёв
Как онлайн-платформы манипулируют нашим выбором и что вернет нам свободу
Мнение редакции может не совпадать с мнением автора
Если меньше времени проводить в социальных медиа, можно избавиться от чувства одиночества и симптомов депрессии. Правда, сделать это непросто: соцсети устроены так, чтобы мы возвращались туда чаще и оставляли за собой как можно более длинный цифровой след. В книге «Новые боги: Как онлайн-платформы манипулируют нашим выбором и что вернет нам свободу» (издательство «Individuum»), переведенной на русский язык Екатериной Токовининой, психолог Кристиан Монтаг рассказывает, как технологические гиганты следят за нами, какие уловки используют, чтобы удерживать нас у экранов, почему некоторые люди особенно восприимчивы к ним и где здоровое потребление контента переходит в зависимость. Предлагаем вам ознакомиться с фрагментом, посвященным анализу психических состояний человека на основе данных, которые собирает смартфон.