Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник PHP

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 — Применяет функцию к каждому элементу массива.

Вопросы и ответы по теме

В учебнике

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.