Увійти Реєстрація
Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Документація Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти Інструменти Події
Інше
Про нас Реклама
Junior PHP 8+

Які головні можливості з'явилися в PHP 8.0?

PHP 8.0 (листопад 2020) - один з найбільших релізів мови. Головне:

Мова:

  • Іменовані аргументи - f(limit: 10).
  • Constructor property promotion - властивості в параметрах конструктора.
  • Union-типи - int|string, плюс тип mixed і тип повернення static.
  • match - вираз зі строгим порівнянням і без провалювання.
  • Nullsafe-оператор ?->.
  • Атрибути - #[Route('/users')] замість анотацій у PHPDoc.
  • throw як вираз - $user ?? throw new NotFound().
  • catch без змінної - catch (TimeoutException).

Суворіша поведінка:

  • Порівняння числа з рядком: 0 == 'abc' тепер false.
  • Помилки замість попереджень: багато внутрішніх функцій кидають TypeError чи ValueError при неправильних аргументах, а арифметика з нечисловим рядком - TypeError.
  • Узгоджені сигнатури вбудованих функцій і перевірка сумісності методів при успадкуванні.

Нові функції: str_contains(), str_starts_with(), str_ends_with(), get_debug_type(), fdiv().

Продуктивність: JIT-компілятор (для обчислювальних задач; типовому веб-застосунку дає небагато) і загальні оптимізації рушія.

Чому це важливо на співбесіді: більшість сучасного PHP-коду спирається саме на ці можливості, а суворіші правила PHP 8 - часта причина проблем при оновленні старих застосунків з PHP 7.

Докладніше в документації: Реліз PHP 8.0

Перевір себе

20 випадкових питань за спробу, після завершення - розбір кожної помилки

Схожі питання