Anonyme Funktionen in PHP, auch Schließungen genannt, ermöglichen die temporäre Erstellung einer Funktion ohne angegebenen Namen. Wird oft als Parameter für Callback-Funktionen verwendet. Natürlich gibt es auch andere Anwendungen.
Hinweis: PHP-Verschlüsse sind erst nach PHP 5.3-Version verfügbar
Was sind Verschlüsse?
Ein Abschluss ist ein Codeblock, der freie (nicht an ein bestimmtes Objekt gebundene) Variablen enthalten kann. Diese Variablen werden nicht innerhalb dieses Blocks oder eines globalen Kontexts definiert, sondern im definierenden Block, der in definiert ist der Umgebung (lokale Variablen). Das Wort „Abschluss“ ergibt sich aus der Kombination eines auszuführenden Codeblocks (da die freien Variablen im Block enthalten sind, werden diese freien Variablen und die Objekte, auf die sie verweisen, nicht freigegeben) und der für die freien Variablen bereitgestellten Bindung. Computerumgebung (Umfang). Im Bereich der Programmierung können wir in Laiensprache sagen: Untergeordnete Funktionen können lokale Variablen in der übergeordneten Funktion verwenden. Dieses Verhalten wird als Abschluss bezeichnet.
Anonyme PHP-Funktionen und -Abschlüsse verwenden dieselbe Syntax wie gewöhnliche Funktionen, aber anonyme Funktionen und Abschlüsse sind tatsächlich als Funktionen getarnte Objekte.
Anonyme Funktion:
ist eine Funktion ohne Namen. Anonyme Funktionen können jedoch weiterhin Funktionen zugewiesen werden Anonyme Funktionen eignen sich besonders als Rückrufe für Funktionen oder Methoden.
Abschluss:
bezieht sich auf eine Funktion, die beim Erstellen den umgebenden Zustand kapselt . Auch wenn eine Schließung Die Umgebung existiert nicht mehr, aber der in der Schließung gekapselte Zustand existiert immer noch.
Hinweis: Theoretisch sind Abschlüsse und anonyme Funktionen unterschiedliche Konzepte. PHP behandelt sie jedoch als dasselbe Konzept.
Die Syntax von Abschlüssen ist äquivalent Das einzige Schlüsselwort, auf das Sie achten müssen, ist use, das den Abschluss und externe Variablen verbindet.
$a = function() use($b) { //TO-DO };
Hier sind einige Beispiele für die Implementierung von Abschlüssen:
//例一:把匿名函数当做参数传递,并且调用它 function callFunc( $func ) { $func( "some string\r\n" ); } $printStrFunc = function( $str ) { echo $str; };
//例二:也可以直接将匿名函数进行传递。如果你了解js,这种写法可能会很熟悉 callFunc( $printStrFunc ); callFunc( function( $str ) { echo $str; } );
Obwohl die Syntax und Implementierung von Abschlüssen sehr einfach sind, ist es nicht einfach, sie gut zu verwenden.
Vorteile der Schließung:
1. Reduzieren Sie den Code der foreach-Schleife
2. Reduzieren Sie rekursive Funktionen
Empfohlenes Tutorial:
PHP-Video-TutorialDas obige ist der detaillierte Inhalt vonWas ist die PHP-Abschlussfunktion?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!