Closure
Класс анонимных функций и замыканий.
Синтаксис
$closure = function () { … }Возвращаемое значение
ClosureОбъект, который можно вызвать как функцию.
Примеры
Замыкание — объект класса Closure:
<?php
$double = fn (int $n) => $n * 2;
var_dump($double instanceof Closure);
echo $double(21);Результат:
bool(true)
42Метод call() выполняет функцию внутри объекта:
<?php
class Counter
{
private int $count = 5;
}
$peek = fn () => $this->count;
echo $peek->call(new Counter());Результат:
5Функция как значение:
<?php
$upper = strtoupper(...);
echo $upper('php'), ' ', get_class($upper);Результат:
PHP ClosureПримечания
В параметрах функций можно указывать тип Closure — он строже, чем callable, и не принимает строки с именами функций.
См. также
- call_user_func — Вызывает функцию, заданную в переменной.
- is_callable — Проверяет, можно ли вызвать значение как функцию.
- array_map — Применяет функцию к каждому элементу массива.
Вопросы и ответы по теме
В учебнике
- Анонимные функции и замыкания — Функции как значения в PHP — анонимные и стрелочные функции, конструкция use, тип callable.