Heim > Artikel > Backend-Entwicklung > Verwendung und Einführung der PHP-Closure-Klasse
In diesem Artikel wird hauptsächlich die Verwendung der PHP-Closure-Klasse vorgestellt. Ich hoffe, dass er für alle hilfreich ist.
Abschließende, anonyme Funktionen, auch bekannt als anonyme Funktionen, wurden in PHP5.3 eingeführt. Anonyme Funktion ist eine Funktion ohne definierten Namen. Behalten Sie dies im Hinterkopf und Sie werden die Definition anonymer Funktionen verstehen.
Einführung in die Closure-Klasse (PHP 5 >= 5.3.0), eine Klasse zur Darstellung anonymer Funktionen (eingeführt in PHP 5.3) werfen wir einen Blick darauf PHP Wie man die Closure-Klasse verwendet und einführt.
Die PHP-Closure-Klasse wurde zuvor in der vordefinierten PHP-Schnittstelle eingeführt, es handelt sich jedoch nicht um eine Schnittstelle, sondern um eine interne Abschlussklasse. Die Klasse „Closure“ wird zur Darstellung anonymer Funktionen verwendet, und alle anonymen Funktionen sind Instanzen der Klasse „Closure“.
$func = function() { echo 'func called'; }; var_dump($func); //class Closure#1 (0) { } $reflect =new ReflectionClass('Closure'); var_dump( $reflect->isInterface(), //false $reflect->isFinal(), //true $reflect->isInternal() //true );
Die Struktur der Closure-Klasse ist wie folgt:
Closure::__construct – ein Konstruktor, der verwendet wird, um die Instanziierung zu verhindern
Closure::bind – kopiert einen Abschluss, Bindet das angegebene $this-Objekt an den Klassenbereich.
Closure::bindTo – Kopieren Sie das aktuelle Abschlussobjekt und binden Sie das angegebene $this-Objekt und den angegebenen Klassenbereich.
Sehen Sie sich ein Beispiel für die Bindung von $this-Objekt und -Bereich an:
class Lang { private $name = 'php'; } $closure = function () { return $this->name; }; $bind_closure = Closure::bind($closure, new Lang(), 'Lang'); echo $bind_closure(); //php
Darüber hinaus verwendet PHP die magische Methode __invoke(), um eine Klasse in einen Abschluss umzuwandeln:
class Invoker { public function __invoke() {return __METHOD__;} } $obj = new Invoker; echo $obj(); //Invoker::__invoke
Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird.
Verwandte Empfehlungen:
PHP+Mysql+jQuery zählt die Anzahl der aktuellen Online-Benutzer
PHP chinesisches vertikales Konvertierungsprogramm
Das obige ist der detaillierte Inhalt vonVerwendung und Einführung der PHP-Closure-Klasse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!