Встречайте PHP7

Мы рады сообщить вам, что теперь на нашем хостинге вы можете использовать PHP7 (www.php.net), подключив его в панели управления всего в несколько кликов.

По сравнению с PHP 5.6 новый интерпретатор выигрывает по производительности по меньшей мере на 20-30%.

Большие изменения коснулись ядра интерпретатора: проект PHPNG, который лежит в основе PHP7, значительно поднял производительность его работы, был улучшен менеджер оперативной памяти и введена полноценная поддержка 64-битных систем.

Нововведения PHP7

В PHP7 был добавлен ряд новых синтаксических конструкций, а также исправлено множество ошибок предыдущих версий.

  • Поддержка скалярного typehint для агрументов функций, аргументов методов и возвращаемых значений позволит сделать код более читабельным. Также появилась возможность включить режим строгой типизации, при которой проверка типов будет выполняться строго. В случае несоответствия типов будет выброшено исключение TypeError.
      declare(strict_types=1);
      function checkPasswordLength(string $password) : bool {
          return strlen($password) > 6;
      }
      
      checkPasswordLength(123456); // TypeError!
      checkPasswordLength("secretpassword"); // ok

  • Null coalescing operator.
    Новый оператор, который, по сути, является приятным синтаксическим сахаром, позволяет не писать утомительную проверку с isset, если переменной или значения в массиве может не существовать.
    $username = isset($_GET['username']) ? $_GET['username'] : "nobody"; // Старый способ
    $username = $_GET['username'] ?? "nobody"; // С помощью нового оператора
    $username = $_GET['user'] ?? $_POST['user'] ?? 'nobody'; // можно объединять в цепочки

  • Spaceship operator.
    Новый оператор сравнения тоже является синтаксическим сахаром. Он производит сравнение операндов и возвращает:
    0, если значения равны
    -1 если левый операнд меньше правого
    1 если левый операнд больше правого

    Spaceship operator удобно использовать в callback-функциях, которые передаются в функцию сортировки:
    $users = [
      "Mike" => ["age" => 22],
      "Ann"  => ["age" => 32],
      "Tony" => ["age" => 10],
    ];
    
    $sortSpaceship = function($a, $b) {
      return $a['age'] <=> $b['age'];
    };
    
    $sortWithoutSpaceship = function($a, $b) {
      return ($a['age'] < $b['age']) ? -1 : (($a['age'] > $b['age']) ? 1 : 0);
    };
    
    uasort($users, $sortSpaceship); // Сортировка с применением нового spaceship-оператора
    uasort($users, $sortWithoutSpaceship); // Сортировка без него, намного длиннее

  • Анонимные классы.
    В PHP7 добавлена поддержка анонимных классов в стиле Java и C#. Анонимные классы могут быть вложенными.
    // Pre PHP 7 code
    class Logger
    {
        public function log($msg) {
            echo $msg;
        }
    }
    
    $util->setLogger(new Logger());
    
    // PHP 7+ code
    $util->setLogger(new class {
                         public function log($msg) {
                             echo $msg;
                         }
                     });
Ознакомьтесь с полным списком изменений в PHP7.

Как включить поддержку PHP7?

Включить поддержку PHP7 для домена вы можете из панели управления в разделе "Сайты". Напротив домена, который должен использовать интерпретатор PHP7, нажмите на иконку с надписью "PHP". В открывшемся окне выберите PHP7 и нажмите кнопку "Применить". Немного подождите пока применятся настройки и начинайте писать код на PHP7. Удачного освоения PHP7!
24 декабря