Класс Closure

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Введение

Класс представляет анонимные функции.

Анонимные функции становятся объектами Closure. Класс содержит методы для управления экземпляром анонимной функции.

Кроме списка методов на этой странице, класс замыкания также содержит магический метод __invoke, который определили не для вызова анонимной функции — метод не срабатывает при вызове объекта замыкания, — а только для согласованности с другими классами, в которых реализовали магический вызов объекта как функции.

Обзор класса

final class Closure {
/* Методы */
private __construct()
public static bind(Closure $closure, ?object $newThis, object|string|null $newScope = "static"): ?Closure
public bindTo(?object $newThis, object|string|null $newScope = "static"): ?Closure
public call(object $newThis, mixed ...$args): mixed
public static fromCallable(callable $callback): Closure
public static getCurrent(): Closure
}

Список изменений

Версия Описание
8.4.0 Вывод метода Closure::__debugInfo() теперь дополнительно включает следующие свойства объекта замыкания: "name", "line" и "file".

Содержание

  • Closure::__construct — Конструктор, запрещающий создание экземпляра
  • Closure::bind — Дублирует замыкание и привязывает копию замыкания к объекту и области видимости класса статически
  • Closure::bindTo — Дублирует замыкание и привязывает копию замыкания к объекту и области видимости класса
  • Closure::call — Связывает и запускает замыкание
  • Closure::fromCallable — Конвертирует callable в замыкание
  • Closure::getCurrent — Возвращает текущее выполняемое замыкание