⚡ Что нового в PHP 7.4

В ноябре 2019 произошел релиз версии PHP 7.4 и мы решили рассмотреть разницу в производительности, некоторые самые интересные дополнения и новые функции, которые сделают PHP еще быстрее и надежнее.

🤘PHP 7.4 (официальный релиз) доступен для всех клиентов HostPro. Благодаря поддержке Multiple PHP клиенты shared-хостинга могут быстро и без проблем переключаться между версиями. 

Производительность в PHP 7

Цифры производительности, которые приводят разработчики, показывает, что версия PHP 7 показывает себя значительно быстрее, по сравнению с предыдущими версиями. Вот несколько пунктов: 

• Официальные тесты PHP продемонстрировали, что PHP 7 позволяет системе выполнять в два раза больше запросов в секунду по сравнению с PHP 5.6. 

• Победитель конкурса инноваций PHP Кристиан Виг опубликовал сравнение производительности PHP, где обнаружил, что версия PHP 5.2 на 400% медленнее, чем PHP 7.

• В PHP 7.4 уменьшилось время выполнение и использование памяти, в сравнении с 7.3. Цифры основываются на запуске одинаковой задачи при одинаковых характеристиках: 

7.3

Execution time: 0.614016 seconds
Memory usage: 360.000000 MB

7.4

Execution time: 0.528052 seconds
Memory usage: 360.000000 MB

• Версия WordPress 5.0 на PHP 7 может выполнять в три раза больше запросов в секунду, по сравнению с PHP 5.6 – 253,20 req/sec против 91 req/sec. 

Что нового в PHP 7.4?

Оператор разворота Speed Operator 

В PHP 7.4 оператор разворота […] (Spread Operator) стал доступен для распаковки массивов, являясь альтернативой функции array_merge.

«Оператор разворота должен иметь большую производительность, чем array_merge, благодаря тому, что компиляция может выполняться для постоянных массивов».

указано в обновлении.

Пример работы оператора разворота:

$parts = ['мука', 'сахар'];
$fruits = ['банан', 'апельсин', ...$parts, 'состав'];
var_dump($fruits);

Если запустить этот код в версии PHP 7.3 или в другой более ранней версии, то будет ошибка Parse error. 

В версии PHP 7.4 будет возвращен массив:

array(5) {
[0]=>
string(6) "банан"
[1]=> 
string(6) "апельсин"
[2]=>
string(5) "мука"
[3]=>
string(4) "сахар"
[4]=>
string(10) "состав"
}

Стрелочные функции – Arrow Functions 2.0

В PHP 7.4 введен более короткий и понятный синтаксис стрелочных функций, что значительно облегчит ваш PHP-код. Новый синтаксис – улучшение языка, которое позволяет создавать более читаемый и компактный код. 

Код такого вида: 

function cube($n){
return ($n * $n * $n);
}
$a = [1, 2, 3, 4, 5];
$b = array_map('cube', $a);
print_r($b);

В PHP 7.4 можно использовать более лаконичный синтаксис, и приведенную выше функцию можно переписать следующим образом:

$a = [1, 2, 3, 4, 5];
$b = array_map(fn($n) => $n * $n * $n, $a);
print_r($b);

Оператор объединения с NULL

В версии PHP 7 появился оператор coalesce (???), который будет полезен, когда понадобится использовать тернарный оператор и функцию isset() – он вернет первый операнд, если он задан и не равняется NULL, либо вернет второй операнд. 

Класс WeakReference

Появился класс WeakReference, позволяющий сохранять ссылку на объект, не влияя на количество ссылок на него и не препятствуя уничтожению самого объекта. 

$weakRef = WeakReference::create($object);

Что означает PHP 7.4 для пользователей WordPress? 

PHP – самый распространенный язык программирования на стороне сервера. По статистике W3Techs, под конец 2019 года PHP использует более 78% всех веб-сайтов, однако в данный момент более 55% все еще продолжают использовать устаревшую версию PHP 5. Если добавить к этому числу количество пользователей, которые используют версию PHP 7.0 и 7.1, то выходит, что подавляющее число веб-проектов используют неподдерживаемые версии PHP. 

По статистике разработчиков WordPress, более 60% всех сайтов WP работают на неподдерживаемых версиях PHP и только 13% перешли на PHP 7.3. Что касается версии PHP 7.4, то статистики по ней и вовсе еще не появилось. 

Исходя из представленной статистики, на PHP 5.6 все еще работает более 20% сайтов. 

Напомним, что официальные требования WordPress на конец 2019 года:

  • Версия PHP 7.3 и выше;
  • MySQL версии 5.6 или выше или MariaDB версии 10.1 или выше;
  • Поддержка HTTPS.

Итог

PHP развивается, вводит новые функции, добавляет в скорости и упрощает написание кода. Мы следим за всеми обновлениями и предлагаем установить официальные версии PHP в один клик, не тратя на это усилий. Чтобы идти в ногу со временем и не подвергать свой сайт дополнительным проблемам, не игнорируйте выходящее обновления – тем более, что установка не займет у вас много времени.