7. Новые возможности PHP 7/8+
Что такое именованные аргументы (Named Arguments) (появились в PHP 8.0)?
JuniorОтвет: Именованные аргументы позволяют передавать значения по имени параметра, а не по позиции, что делает код более читаемым и позволяет пропускать необязательные параметры.
htmlspecialchars($string, double_encode: false);
Что такое Union Types (появились в PHP 8.0)?
JuniorОтвет: Union-типы позволяют указывать несколько типов для параметра, свойства или возвращаемого значения вместо одного.
function sum(int|float $a, int|float $b): int|float {
return $a + $b;
}
Что такое выражения match (появились в PHP 8.0)?
JuniorОтвет: Более безопасная и строгая версия switch, которая возвращает значение и использует строгое сравнение.
$text = match($statusCode) {
200, 201 => 'Success',
404 => 'Not Found',
default => 'Unknown',
};
Что такое атрибут #[Override] (появился в PHP 8.3)?
Junior
Ответ: Атрибут #[Override] гарантирует, что в родительском классе или интерфейсе существует метод с таким же именем. Это помогает выявлять ошибки при рефакторинге.
class Child extends ParentClass {
#[Override]
public function existingMethod() {}
}
Что такое функция json_validate() (появилась в PHP 8.3)?
Junior
Ответ: Проверяет, является ли строка валидным JSON, без декодирования, что расходует меньше памяти.
if (json_validate($jsonString)) {
// строка является валидным JSON
}
Что такое динамическое получение констант класса (появилось в PHP 8.3)?
JuniorОтвет: Упрощённый синтаксис для получения констант класса через переменную.
$name = 'STATUS_ACTIVE';
echo MyClass::{$name};
Что такое самостоятельные типы null, false и true (появились в PHP 8.2)?
Junior
Ответ: Теперь их можно использовать как самостоятельные типы для возвращаемых значений, параметров и свойств.
public function alwaysFalse(): false { return false; }
Что такое оператор Nullsafe (появился в PHP 8.0)?
JuniorОтвет: Оператор ?-> позволяет безопасно обращаться к свойствам или методам потенциально равного null значения без генерации ошибки.
$country = $session?->user?->getAddress()?->country;
Какие новые функции для раб оты с массивами появились в PHP 8.4?
JuniorОтвет: В PHP 8.4 появились четыре новые функции для поиска и проверки элементов массива с помощью callback-функции: array_find(), array_find_key(), array_any() и array_all().
$firstEven = array_find([1, 2, 3, 4], fn($v) => $v % 2 === 0); // 2
$anyEven = array_any([1, 3, 5], fn($v) => $v % 2 === 0); // false