Heim > Artikel > Backend-Entwicklung > Was ist eine Verschlussfunktion? Welche Rolle spielt die Verschlussfunktion? (mit Code)
Der vorherige Artikel hat Ihnen „Was ist eine anonyme Funktion in PHP?“ vorgestellt. Wie unterscheidet es sich von gewöhnlichen Funktionen? (Ausführliche Erklärung und Beispiele) “, dieser Artikel stellt Ihnen weiterhin vor, was eine Abschlussfunktion ist? Welche Rolle spielt die Verschlussfunktion? (Code beigefügt) Freunde in Not können darauf verweisen. Ich hoffe, dass es für alle hilfreich ist.
Was ist eine Abschlussfunktion:
Verwenden Sie die Variablen der übergeordneten Funktion innerhalb der untergeordneten Funktion über das Schlüsselwort use.
Format:
function 父函数(){ //父函数的局部变量 $var-值 //声明廬名函数并且使用use格式实现闭包 变量- function() use(父元素变量){ }; }
Die anonyme Funktion, die wir gelernt haben Die Abschlussfunktionen, die wir heute kennenlernen möchten, werden beim Schreiben von Code normalerweise nicht sehr oft verwendet. Im Allgemeinen werden sie beim Schreiben von Frameworks angezeigt.
Konkret nehmen wir den Code als Beispiel zur Diskussion:
<?php /******* 闭包函数************/ //定义一个变量 $pph = ' 这是页面及的变量'; function father1(){ //父函数的一个局部变量 $pph = '不想上班' ; function son1( ){ global $pph; echo $pph; } son(); } father1(); ?>
Codeanalyse:
Zuerst definieren wir noch eine Variable $pph (die Variable der Seite und der Seite) und definieren dann eine lokale Variable des übergeordneten Elements Funktion [Funktionsvater ()], zu diesem Zeitpunkt haben wir interne und externe Variablen, und dann geben wir $pph global aus (Echo) $pph, ist das Ausgabeergebnis die übergeordnete Klasse oder die Seitenebene? Als wir die Ergebnisse durchführten, stellten wir fest, dass die Ausgabeergebnisse auf Seitenebene lagen (der Code ist unten dargestellt). Daher kamen wir zu dem Schluss, dass eine globale Variable nach dem Aufruf nur Seitenvariablen, aber keine übergeordneten Klassenvariablen ausgeben kann.
Wenn wir es in Form einer anonymen Funktion schreiben, können wir die Variablen des übergeordneten Elements verwenden. Wir müssen das Schlüsselwort use verwenden, aber wenn wir es ausführen, werden wir eine Fehlermeldung finden
The Der Code lautet wie folgt:
function father(){ $pph = '不想上班'; function son() use($pph){ echio $pph; } son(); } father();
Ergebnisse werden wie folgt ausgeführt:
Das ist also falsch und kann nicht implementiert werden.
Verwenden Sie anonyme Funktionen, um Abschlüsse zu implementieren.
function father(){ $pph = '不想上班'; $son = function () use($pph){ echo $pph; }; //调用内部函数 $son(); } father();
Empfohlenes Lernen: „PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas ist eine Verschlussfunktion? Welche Rolle spielt die Verschlussfunktion? (mit Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!