Встречайте 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, нажмите на иконку с надписью «PHP». В открывшемся окне выберите PHP7 и нажмите кнопку «Применить». Немного подождите пока применятся настройки и начинайте писать код на PHP 7.

0 комментариев

Оставить комментарий