Перейти к основному содержимому

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