PHP 5.6, 7.0, 7.4 и 8.0 и производительность |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
| ! | В разделе запрещено создавать темы связанные с раскруткой игровых серверов |
|
|
PHP 5.6, 7.0, 7.4 и 8.0 и производительность |
BaHeK
|
23.4.2021, 9:32
Сообщение
|
![]() |
Metal Messiah, да ты америку открыл с opcache и readline, факт в том, что из коробки 7.x быстрее 5.x. Не знаю, что за бенчмарк ты понаписал, но если верить этим данным: http://www.phpbenchmarks.com/en/, то все видно сразу.Теперь приведу аргументы в пользу новых версий PHP 1) С 7.0 появился очень удобный синтаксис ??, очень сильно упрощает работу, уже из-за него можно отказаться от устаревшей версии 5.x Было Код $var = isset($_GET['var']) ? $_GET['var'] : ''; Стало Код $var = $_GET['var'] ?? ''; А еще можно цепочку сделать, я даже не хочу ее расписывать для 5.x Код $var = $foo ?? $_GET['var'] ?? ''; 2) С 7.0 можно указать тип возвращаемого значения, с 7.1 можно указывать NULL, это очень удобно в IDE (если ты конечно ей пользуешься, а не как школота в notepad++), раньше приходилось это делать в phpdoc, сейчас можно прямо в коде Код class A { ... } class B { private $a = null; public function initA() { $this->a = new A; } public function getA(): ?A { return $this->a; } } $b = new B(); $b->initA(); // Тут уже IDE знает, что в C либо null, либо класс A и будет подсказывать методы для класса A $c = $b->getA(); 3) С 7.1 можно отловить несколько исключений в одном блоке Код try { echo "OK"; } catch (Exception | TestException $e) { } catch (TypeError $e) { } 4) С 7.3 можно выкинуть исключения в функциях json_encode/json_decode, если передан невалидный json, раньше приходилось проверять ошибки через json_last_error 5) С 7.4 добавили синтаксис ??= Было Код $date = $date ?? new DateTime; Стало Код $date ??= new DateTime; 6) С 8.0 появилась крутая фича как "Именованые параметры" Например метод Код public function test($a = '', $b = '', $c = '', $d = '') Раньше для того, чтобы передать один параметр d, приходилось все перечислять, теперь этого делать не надо Было Код $test->test('', '', '', $var); Стало Код $test->test(d: $var); 7) С 8.0 появился оператор безопасного null, эта та фича, ради которой я уже перехожу на 8.0, это насколько удобно, что не передать словами К примеру надо получить ID группы пользователя, но не известно авторизован ли пользователь Было Код $group = $user === null ? null : $user->getGroup(); $groupId = $group === null ? null : $group->getId(); Стало Код $groupId = $user?->getGroup()?->getId(); 8) С 8.0 в можно указывать несколько типов, иногда бывает полезно Код private int|float $number; Если раньше на хостингах ставилась одна версия PHP для всех и было проблемно поддерживать актуальную версию PHP, чтобы угодить всем. То сейчас почти везде можно выбрать версию PHP. У кого старые скрипты - сами поставят старую версию. А новые скрипты уже можно писать на php 8.0 и клиенты сами поставят 8.0.
Отредактировал: BaHeK, - 23.4.2021, 9:34
![]() Чуть-чуть нарушаю http://img-host.su/aoN1.png |
Поблагодарили 3 раз
|
|
Gecko
|
23.4.2021, 13:44
Сообщение
|
|
|
![]() Не отвечаю на ЛС.
|
|
|
|
BaHeK
|
23.4.2021, 13:46
Сообщение
|
![]() |
![]() Чуть-чуть нарушаю http://img-host.su/aoN1.png |
|
|
|
teetan
|
23.4.2021, 14:49
Сообщение
|
![]() |
|
|
|
|
wopox3
|
23.4.2021, 16:24
Сообщение
|
![]() |
пральна! А ещё AMXX 1.8.2 лучше, чем эти сырые, недоделанные AMXX 1.11
|
|
|
|
ddsyarik
|
23.4.2021, 16:35
Сообщение
|
|
|
Eka, Спасибо тебе, поднял настроение. Мы тут с ребятами поорали с его проектов. Гит будет уже перебором. Умрем со смеха ![]() Забудь о PROCESSCMD #cs-developer
|
|
|
|
Eka
|
24.4.2021, 0:14
Сообщение
|
|
|
![]() цитаты великих умов
Цитата аналог libcurl в Go это net/http |
Поблагодарили 1 раз
|
|
![]() ![]() |