Началось бета-тестирование PHP 8
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Представлен первый бета-выпуск новой ветки языка программирования PHP 8. Релиз намечен на 26 ноября. Одновременно сформированы корректирующие выпуски PHP 7.4.9, 7.3.21 и
7.2.33, в которых устранены накопившиеся ошибки и уязвимости.
Основные новшества PHP 8:
- Включение JIT-компилятора, применение которого позволит повысить производительность.
- Поддержка именованных аргументов функций, позволяющих передававать в функцию значения в привязке к именам, т.е. можно передавать аргументы в произвольном порядке и определять необязательные аргументы. Например, "array_fill(start_index: 0, num: 100, value: 50)".
- При вызове методов разрешено применение оператора "?", который позволяет инициировать вызов только, если метод присутствует, что позволяет избежать лишних проверок на возврат значения "null". Например, "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
- Поддержка union-типов, определяющих коллекции из двух и более типов (например "public function foo(Foo|Bar $input): int|float;").
- Поддержка атрибутов (аннотаций), позволяющих привязать метаданные (например, сведения о типах) к классам без использования синтаксиса Docblock.
- Поддержка выражений match, которые в отличие от switch могут возвращать значения, поддерживают комбинирование условий, используют строгое сравнение типов и не требуют указания "break".
$result = match($input) {
0 => "hello",
'1', '2', '3' => "world",
};
- Сокращённый синтаксис определения классов, позволяющий объединить определение конструктора и свойств.
- Новый тип возвращаемых значений - static.
- Новый тип - mixed, который может применяться для определения приёма функцией параметров с разными типами.
- Выражение throw для обработки исключений.
- WeakMap для создания объектов, которыми можно пожертвовать при сборке мусора (например, для хранения необязательных кэшей).
- Возможность использования выражения "::class" для объектов (аналог вызова get_class()).
- Возможность определения в блоке catch исключений, не привязанных к переменным.
- Возможность оставления символа запятой после последнего элемента в списке параметров функции.
- Новый интерфейс Stringable для идентификации любых строковых типов или данных, которых можно преобразовать в строку (для которых доступен метод__toString()).
- Новая функция str_contains(), упрощённый аналог strpos для определения вхождения подстроки, а также функции str_starts_with() и str_ends_with() для проверки совпадений в начале и конце строки.
- Добавлена функция fdiv(), выполняющая операцию деления без вывода ошибки в случае деления на ноль.
- Изменена логика соединения строк. Например, выражение 'echo "sum: " . $a + $b' ранее интерпретировалось как 'echo ("sum: " . $a) + $b', а в PHP 8 будет обработано как 'echo "sum: " . ($a + $b)'.
- Ужесточена проверка арифметических и битовых операций, например, выражения "[] % [42]" и "$object + 4" будут приводить к ошибке.
- Реализован стабильный алгоритм сортировки, в котором при разных запусках сохраняется порядок следования одинаковых значений.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://www.php.net/archive/20...)
- OpenNews: Microsoft не станет заниматься поддержкой PHP 8.0 для Windows
- OpenNews: Выпуск Psalm 3.12, статического анализатора для языка PHP. Альфа выпуск PHP 8.0
- OpenNews: Релиз языка программирования PHP 7.4
- OpenNews: Уязвимость php-fpm, позволяющая удалённо выполнить код на сервере
- OpenNews: В PHP 8 будет добавлен JIT-компилятор
Похожие новости:
- [Ajax, PHP, MySQL, JavaScript, jQuery] Пишем комментарии для сайта на чистом PHP + MySQL + Ajax
- [Laravel, PHP, Symfony, Разработка веб-сайтов] PhpStorm 2020.2: объединенные типы PHP 8, новый движок потока управления, пул-реквесты GitHub, OpenAPI
- [Laravel, PHP, Проектирование и рефакторинг] Подсистема событий как способ избавиться от задач по «допилу»
- [PHP] Порядок вычисления в PHP (перевод)
- [PHP] PHP Internals News Эпизод #38: предзагрузка и WeakMaps (перевод)
- [PHP, Системное администрирование] Apache & Nginx. Связаны одной цепью (2 часть)
- [PHP] Hire PHP Developers: Cost & Procedure
- [PHP] Получение видео из Tik Tok без водяного знака
- [PHP, ООП, Совершенный код] Вы уверены, что пишете объектно-ориентированный код? (перевод)
- [PHP] Как я писал кодогенератор на PHP и что из этого получилось
Теги для поиска: #_php
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 23-Ноя 01:21
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Представлен первый бета-выпуск новой ветки языка программирования PHP 8. Релиз намечен на 26 ноября. Одновременно сформированы корректирующие выпуски PHP 7.4.9, 7.3.21 и 7.2.33, в которых устранены накопившиеся ошибки и уязвимости. Основные новшества PHP 8:
=========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 23-Ноя 01:21
Часовой пояс: UTC + 5