7.4+ == Объявление типов в свойствах класса == class User { public int $id; public string $name; } == Стрелочные функции == Привязка к родительской области видимости $factor = 10; $nums = array_map(fn($n) => $n * $factor, [1, 2, 3, 4]); // $nums = array(10, 20, 30, 40); == Привязывающий оператор ?? == $array['key'] ??= computeDefault(); // примерно то же самое if (!isset($array['key'])) { $array['key'] = computeDefault(); } == Распаковка внутри массивов == $parts = ['apple', 'pear']; $fruits = ['banana', 'orange', ...$parts, 'watermelon']; // ['banana', 'orange', 'apple', 'pear', 'watermelon']; == Новые магические методы сериализации == // Возвращает массив, содержащий все необходимое состояние объекта. public function __serialize(): array; // Восстанавливает состояние объекта из указанного массива данных. public function __unserialize(array $data): void; == Расширения proc_open == Вызов процесса по массиву с авто-экранированием proc_open(['php', '-r', 'echo "Привет, мирn";'], $descriptors, $pipes); Вызов процесса с редиректом // То же самое, что и 2>&1 в командной оболочке proc_open($cmd, [1 => ['pipe', 'w'], 2 => ['redirect', 1]], $pipes); // То же самое, что и 2>/dev/null или 2>nul в командной оболочке proc_open($cmd, [1 => ['pipe', 'w'], 2 => ['null']], $pipes);
PHP Справочник v0.05 © 2007-2024 Igor Salnikov aka SunDoctor