Вышел долгожданный релиз PHP 7. К разработке PHP 7 подошли очень ответственно — релиз должен был выйти ещё 12 ноября, но вместо этого незапланировано выпустили дополнительный кандидат RC 7 (с исправлением 17 багов) и отвели две недели на тестирование. Затем, 26 ноября, выпустили ещё один кандидат RC 8, исправляющий 11 багов, с неделей на тестирование.
Ниже — неполный список улучшений и нововведений:
- PHP 7 до двух раз быстрее PHP 5.6;
- Улучшена 64-битность:
- В 64-битных сборках добавлена поддержка строк длиной более 231 байт;
- В PHP x64 для Windows добавлена нативная поддержка 64-разрядных целых чисел и больших файлов;
- Многие фатальные ошибки теперь вызывают исключения и, соответственно, могут быть обработаны:
try { call_method(null); // Упс! } catch (EngineException $e) { echo "Exception: {$e->getMessage()}\n"; }
- Не перехваченные ошибки в PHP 7 будут обработаны так же, как и ранее в PHP 5.x;
- NULL-коалесцирующий оператор (??) — проверяет переменную на существование и возвращает её значение либо значение второго операнда:
// PHP 7+ $username = $_GET['user'] ?? 'nobody'; // Эквивалент ранних версий PHP $username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
- Комбинированный оператор сравнения (<=>) — возвращает -1, 0 или 1, если первый операнд, соответственно, меньше, равен, или больше второго операнда:
// PHP 7+ echo 1 <=> 1; // 0 echo 1 <=> 2; // -1 echo 2 <=> 1; // 1
- Возможность декларирования типов аргументов и значений функций:
function foo(): array { return []; }
Кроме того, PHP 7 вводит четыре новых типа: int, float, string, bool;
- Анонимные классы:
var_dump(new class($i) { public function __construct($i) { $this->i = $i; } });
Синтаксис анонимных классов аналогичен традиционным классам. Анонимные классы удобны, например, когда класс используется только один раз или в случаях, когда нет необходимости в документировании класса;
- Удалены старые SAPI и расширения. Все удалённые элементы ранее (в PHP 5.x) были помечены как устаревшие (deprecated) и не рекомендовались к использованию.
- И многое другое…
Оригинал статьи взят в блоге Сергея Яковлева
«Кроме того, PHP 7 вводит четыре новых типа: int, float, string, bool;»
Вы это серьезно?
Задайте пожалуйста этот вопрос автору статьи: https://sergeyakovlev.com/blog/2015/12/04/php7-released
Оригинал статьи взят в блоге Сергея Яковлева.
Прошу прощение за ошибку. Исправил.