I Shar

I Shar

мир глазами веб-разработчика

PHP: скорость конкатенации

рассказ о том, как в PHP 7.4 завершилось одно долгое противостояние

I Shar

время чтения 2 мин.

Photo by Natasha Reddy on Unsplash

Итак, со времени выхода восьмой версии PHP прошло уже несколько месяцев, и я успел завершить очередной проект, вобравший все прогрессивные изменения этого языка программирования. Мне особенно понравилась возможность объявления свойств в конструкторе (Constructor property promotion). Я считаю, что эта реализация действительно упростила инициализацию полей класса в конструкторе.

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

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

Так, в определенных кругах не теряло популярности обсуждение, что быстрее: одинарные кавычки с конкатенацией переменных или двойные кавычки с включенными в строку переменными.

$age = 25;
echo 'I am ' . $age . 'years old';
//or
echo "I am $age years old";

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

Тем не менее в PHP 7.3 конкатенация и одинарные кавычки побеждали:

Можно увидеть, что 100 000 000 конкатенаций давали одинарным кавычкам преимущество в 2 секунды.

Но теперь с этим покончено.

PHP 7.4 сделал использование различных вариантов синтаксиса при объединении строк незначимым.

Наконец-то. Теперь мы можем заняться действительно важными задачами.


P.S.: Прошу обратить внимание на то, что данный пост имеет юмористический оттенок, и результаты, полученные на Вашем компьютере, могут отличаться от моих.


Спасибо за внимание.


Перевод статьи Jerzy Zawadzki “PHP 7.4 has silently ended The War…”.

    • backend
    • php

Новые публикации

Далее

Категории

О нас

Frontend & Backend. Статьи, обзоры, заметки, код, уроки.