О web-разработке
и даже немного больше...

Что нового в 7 версии PHP (Alpha)

php-7-alphaВышел в свет ожидаемый релиз PHP 7 версии пока что Alpha, сразу за версией 5.6 последовала ветка седьмой версии.
Релиз состоялся 11 июня, финальная версия планируется на ноябрь 2015 года. Однако уже сейчас можно наблюдать изменения, на которые следует обратить внимание. Здесь отмечены лишь некоторые из них, с полным списком вы сможете ознакомиться пройдя по ссылке, которые будут оставлены в конце поста.

  • Улучшение производительности. Как утверждают разработчики, PHP 7-й версии стал работать в два раза быстрее по сравнению с версией PHP версии 5.6. Если это действительно так, то эта новость действительно радует.
  • Реализована поддержка сокращенной записи конструкции use:
    use Symfony\Component\Console\{
      Helper\Table,
      Question\ChoiceQuestion as Choice,
      Question\ConfirmationQuestion,
    };
    
  • Хорошая идея, сделать запись короче при работе с тернарными операторами, для простых проверок переменных, и присвоению им значений по умолчанию. И вот появляется оператор “??” (Null coalescing operator). Теперь проверить наличие переменной и вернуть её значение либо значение по умолчанию можно с помощью записи:
    $action = $_POST['action'] ?? 'index';
    

    Это тоже самое, что и эта запись:

    $action = isset($_POST['action']) ? $_POST['action'] : 'index';
    
  • Добавлена поддержка строк длиною >= 2^31 байт для 64-битных сборок.
  • Появился метод Closeure::call(object $to[, mixed $parametrs]), позволяющий вызвать анонимную функцию с произвольным $this.
  • Появился синтаксис \u{xxxxxx} для строк, который позволяет делать записи произвольных Unicode-символов в строках.
  • Теперь в качестве констант объявляемые через define() так же можно задавать массивы, эта возможность весьма кстати.
  • Появился новый оператор сравнения, записывается так <=>, ранее известный как «spaceship operator». Условие $a <=>$b может вернуть -1, 0 или 1 в случае если значение переменной $a меньше, равно либо больше значения переменной $b соответственно.
  • Появилась возможность использования зарезервированных ключевых слов в качестве имен методов:
    $object::new('foo', 'bar')->forEach(function($index, $item) {});
    
  • Запись конструктора класса в стиле PHP 4, отныне будет считаться устаревшей. Для пояснения это когда метод-конструктор класса назывался так же, как и сам класс.
  • Обращения к не статичным методам, посредством статичных вызовов (::) так же считаются устаревшими.
  • Появилась константа PHP_INT_MIN
  • Исключена INI директива «asp_tags», в случае попытки её включения отныне будет возникать фатальная ошибка. Соответственно удалена поддержка тегов привычных для ASP (<%).
  • Исключена INI директива «always_populate_raw_post_data», переменная $HTTP_RAW_POST_DATA теперь не будет доступна, а вместо неё следует использовать дескриптор входного потока php://input.
  • Итерация по массиву посредством цикла foreach отныне не сдвигает внутренний указатель массива, который можно так же получать и изменять такими функциями как current(), next(), reset() и аналогичных функций. Цикл foreach теперь будет работать с копией массива.
  • Побитовый сдвиг посредством оператора сдвига (<<) на кол-во бит, в случае если будет превышать кол-во бит в integer теперь будет будет возвращать в качестве результата 0. Стоит отметить, что ранее значение результата зависило от архитектцуры процессора. По аналогии, правый сдвиг будет возвращать 0 либо -1 в зависимости от знака исходящего числа (старший бит, отвечающий за знак, не оказывает влияния).
  • Теперь строки, которые содержат шестнадцатеричные числа будут всегда обрабатываться как строки, а не восприниматься как числа. К примеру, ранее условие is_numeric(«0xFF») возвращало true, теперь же аналогичные проверки будут возвращать false.
  • Исключена поддержка модификатора /e в PCRE, с помощью функции preg_replace_callback() может быть реализована аналогичная функциональность.
  • Как известно, ранее контроль типов был возможен исключительно только для классов, интерфейсов, массивов, и типа callable, теперь же добавлена поддержка type-hint-ов для скалярных типов.
  • Исключены устаревшие и не поддерживаемые SAPI и расширения.
  • Ссылки на подробную информацию: php.net, github.com

Опубликован: 25.06.2015 г.

См. также:

Редакторы кода для PHP
Как просмотреть время загрузки страницы в PHP?
Генерация QR-кода в PHP
Загрузка файлов на сервер посредством Ajax
Импорт записей из Excel в WordPress
Парсинг XML в PHP
Установка IonCube на XAMPP
Создание PDF файлов в PHP

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Комментарии
  • Загрузка...
Друзья сайта