Что важное появилось после версии PHP 5.6?

«Что важное появилось после версии PHP 5.6?» — вопрос из категории PHP Core, который задают на 24% собеседований PHP Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Переход с PHP 5.6 на 7.x стал революционным. Вот ключевые нововведения, которые я активно использую:

PHP 7.0:

  1. Рост производительности в 2-3 раза благодаря Zend Engine 3.0.
  2. Скалярная типизация с strict mode:
    declare(strict_types=1);
    function calculateDiscount(float $price, int $percent): float {
        return $price * ($percent / 100);
    }
  3. Оператор объединения с null (??):
    $page = $_GET['page'] ?? 1; // Вместо: $page = isset($_GET['page']) ? $_GET['page'] : 1;
  4. Оператор spaceship (<=>) для компараторов:
    usort($products, fn($a, $b) => $a['price'] <=> $b['price']);

PHP 7.4+ и 8.x (после 5.6):

  1. Свойства-конструкторы (PHP 8.0):
    class User {
        public function __construct(public string $name, private int $id) {}
    }
  2. Выражение match (PHP 8.0): Более строгая и выразительная замена switch:
    $statusCode = 200;
    $message = match ($statusCode) {
        200, 201 => 'OK',
        404 => 'Not Found',
        500 => 'Server Error',
        default => 'Unknown status',
    };
  3. Нулевой безопасный оператор (?->) (PHP 8.0):
    $country = $user?->getAddress()?->getCountry(); // Не вызовет ошибки, если $user или адрес null.

Эти изменения кардинально улучшили безопасность, читаемость и поддерживаемость кода.