27. HaPHPiness - Лучшее в PHP
Этот раздел освещает современные возможности PHP и общую «радость» от экосистемы, вдохновленный ресурсом haphpiness.com.
Что такое именованные аргументы (Named Arguments)?
JuniorОтвет: Именованные аргументы (появились в PHP 8.0) позволяют передавать значения по имени параметра, а не по позиции. См. Возможности PHP 8.0
Что такое Union Types и Intersection Types?
JuniorОтвет: Union Types (8.0) позволяют указывать несколько типов для параметра; Intersection Types (8.1) требуют соответствия значения сразу нескольким ограничениям типов. См. Возможности PHP 8.0
Что такое перечисления (Enums)?
JuniorОтвет: Перечисления (8.1) обеспечивают типобезопасность для фиксированного набора именованных констант. См. Возможности PHP 8.1
Что такое str_contains(), str_starts_with() и str_ends_with()?
JuniorОтвет: Это консистентные и читаемые функции для стандартных операций со строками, добавленные в PHP 8.0. Подробный гайд HaPHPiness
Что такое распаковка массивов со строковыми ключами?
JuniorОтвет: Начиная с PHP 8.1, оператор расширения (...) поддерживает строковые ключи при слиянии массивов.
Подробный гайд HaPHPiness
Что такое встроенный сервер разработки?
JuniorОтвет: PHP включает простой веб-сервер для целей разработки, запускаемый командой php -S localhost:8000.
Подробный гайд HaPHPiness
Что такое стрелочные функции (Arrow Functions)?
JuniorОтвет: Введенные в PHP 7.4, они предлагают краткий синтаксис для коротких замыканий с автоматическим захватом переменных. Подробный гайд HaPHPiness
Что такое выражения Match?
JuniorОтвет: Более безопасная и строгая альтернатива switch, которая возвращает значение (PHP 8.0).
Подробный гайд HaPHPiness
Что такое оператор объединения с null (Null Coalescing Operator)?
JuniorОтвет: Оператор ?? (и присваивание ??=) обеспечивает чистый способ обработки null-значений и дефолтов.
Подробный гайд HaPHPiness
Что такое разделители в числовых литералах?
JuniorОтвет: Использование нижнего подчеркивания для улучшения читаемости больших чисел (например, 1_000_000).
Подробный гайд HaPHPiness
Что такое файберы (Fibers)?
MiddleОтвет: Легковесные корутины для неблокирующего ввода-вывода (PHP 8.1). См. Возможности PHP 8.1
Что такое атрибуты (Attributes)?
MiddleОтвет: Нативная поддержка метаданных (аннотаций) в движке PHP начиная с версии 8.0. Подробный гайд HaPHPiness
Что такое первоклассный синтаксис callable (First-class Callable Syntax)?
MiddleОтвет: Чистый способ создания Closure из функции или метода с использованием (...).
См. Возможности PHP 8.1
Что такое оператор Nullsafe?
MiddleОтвет: Оператор ?-> позволяет безопасно обращаться к методам или свойствам потенциально null-объектов.
См. Возможности PHP 8.0
Что такое хуки свойств (Property Hooks)?
MiddleОтвет: Логика для get и set, определяемая прямо при объявлении свойства (PHP 8.4).
См. Возможности PHP 8.4
Что такое асимметричная видимость (Asymmetric Visibility)?
MiddleОтвет: Разная область видимости для чтения и записи свойства (например, public private(set)).
См. Возможности PHP 8.4
Что такое конвейерный оператор (Pipe Operator)?
MiddleОтвет: Способ выстраивания цепочек вызовов функций слева направо с помощью |> (PHP 8.5).
См. Возможности PHP 8.5
Что такое array_is_list()?
MiddleОтвет: Функция для проверки, является ли массив списком с последовательными ключами, начиная с 0. Подробный гайд HaPHPiness
Что такое WeakMaps?
MiddleОтвет: Карты, где ключами являются объекты, которые не препятствуют удалению этих объектов сборщиком мусора. Подробный гайд HaPHPiness
Что такое именованные группы захвата в preg_match?
MiddleОтвет: Использование (?P<name>...) в регулярных выражениях для получения именованных совпадений.
Подробный гайд HaPHPiness
Что такое оператор «космический корабль» (Spaceship Operator)?
MiddleОтвет: Оператор <=> для трехстороннего сравнения, возвращающий -1, 0 или 1.
Подробный гайд HaPHPiness
Что такое распаковка массива с ключами?
MiddleОтвет: Извлечение конкретных значений из ассоциативного массива с использованием синтаксиса [...].
Подробный гайд HaPHPiness
Что такое #[\NoDiscard]?
SeniorОтвет: Атрибут, который выдает предупреждение, если возвращаемое значение функции игнорируется (PHP 8.5). Подробный гайд HaPHPiness
Что такое Fatal Error Backtraces (трассировка стека при фатальных ошибках)?
SeniorОтвет: Начиная с PHP 8.5, фатальные ошибки (например, таймауты) включают полную трассировку стека (backtrace) для упрощения отладки. Подробный гайд HaPHPiness
Что такое расширение URI?
SeniorОтвет: Встроенное расширение для парсинга URL, работающее с иммутабельными объектами и соответствующее стандартам (PHP 8.5). Подробный гайд HaPHPiness
Что такое FFI (Foreign Function Interface)?
SeniorОтвет: Позволяет вызывать функции C и использовать структуры данных C напрямую из PHP (7.4+). Подробный гайд HaPHPiness
Что такое PHPStan и Psalm?
SeniorОтвет: Инструменты статического анализа, обеспечивающие уровень типобезопасности как в TypeScript для PHP-проектов. Подробный гайд HaPHPiness
Что такое NativePHP?
SeniorОтвет: Фреймворк для создания нативных десктопных и мобильных приложений на базе PHP и Laravel. Подробный гайд HaPHPiness