Встречайте 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.