Вход
Забыл пароль? Восстановить
Панель биллинга

Основные преимущества PHP 7

Одним из самых интересных событий, произошедших в мире PHP, стал выпуск PHP 7. 10 лет отделяют его от выпуска первого релиза PHP 5. С увеличением первой цифры в номере версии, в PHP 7 появилось много новшеств, увеличилась в два раза скорость работы.

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

Разработчики действительно позаботились о своих клиентах.  На сегодняшний день не многие хостинг провайдеры предоставляют возможность использовать PHP 7. Данная версия PHP имеет много преимуществ, что в свою очередь повышает "качество" сайта. Современные технологии позволяют использовать виртуальные сервера. Вы можете заказать виртуальный сервер, что позволит настроить рабочею среду так, что вы сможете использовать PHP 7.  Проведенные тесты показали что использовать PHP 7 для CMS - это эффективное решение. 

Стоит отметить что CMS является популярной системой управления контентом которая поддерживает PHP 7. Функционал CMS позволяет создавать самые сложные сайты. А с администрированием контента не возникнет вопрос. 

Вот некоторые преимущества:

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

    Теперь может быть коротко записана так:
     
    $action = $_POST['action'] ?? 'index';
    
  • Добавлена поддержка строк длиной больше 2^31 байт в 64-битных билдах.
  • Добавлен метод Closure::call(object $to[, mixed $parameters]), позволяющий вызвать анонимную функцию с произвольным $this.
  • Добавлен синтаксис \u{xxxxxx} для строк, позволяющий указывать произвольные Unicode символы в строках.
  • В качестве значения констант, объявляемых через define() теперь можно указывать массивы.
  • Добавлен новый оператор сравнения <=>, так же известный как «spaceship operator». Конструкция $a <=> $b возвращает -1, 0 или +1 если $a соответственно меньше, равно или больше $b. Удобно использовать в колбэках для usort().
  • Зарезервированные ключевые слова теперь можно использовать в качестве имен методов:
     
    $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») теперь false, раньше было true со всеми вытекающими.
  • Целые числа в 64-х битных билдах для Windows теперь представляются в виде 64-х битных, а не как раньше, 32-х, что делало использование х64 сборок на Windows бессмысленным занятием, если нужны манипуляции с большими числами.
  • Удалена поддержка модификатора /e в PCRE. Аналогичная функциональность может быть реализована функцией preg_replace_callback().
  • Добавлена поддержка type-hint'ов для скалярных типов. Ранее контроль типов был возможен только для классов, интерфейсов, массивов и типа callable.
  • Удалены старые и не поддерживаемые SAPI и расширения.