Was ist eine Verschlussfunktion? Welche Rolle spielt die Verschlussfunktion? (mit Code)

慕斯
Freigeben: 2023-03-10 12:24:01
Original
2315 Leute haben es durchsucht

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 Verschlussfunktion? Welche Rolle spielt die Verschlussfunktion? (mit Code)

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(父元素变量){
};
}
Nach dem Login kopieren

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 = &#39; 这是页面及的变量&#39;;
  function father1(){
//父函数的一个局部变量
  $pph = &#39;不想上班&#39; ;
  function son1( ){
           global $pph;
           echo $pph;
}
    son();
}
    father1();
?>
Nach dem Login kopieren

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.

Was ist eine Verschlussfunktion? Welche Rolle spielt die Verschlussfunktion? (mit Code)

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 = &#39;不想上班&#39;;
        function son() use($pph){
        echio $pph;
        }
        son();
        }
        father();
Nach dem Login kopieren

Ergebnisse werden wie folgt ausgeführt:

Was ist eine Verschlussfunktion? Welche Rolle spielt die Verschlussfunktion? (mit Code)

Das ist also falsch und kann nicht implementiert werden.

Verwenden Sie anonyme Funktionen, um Abschlüsse zu implementieren.

     function father(){
            $pph = &#39;不想上班&#39;;
            $son = function () use($pph){
            echo $pph;
            };
            //调用内部函数
            $son();
            }
            father();
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!