Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Implementierung anonymer Funktionen und Schließungen in PHP-Funktionen

Detaillierte Erläuterung der Implementierung anonymer Funktionen und Schließungen in PHP-Funktionen

伊谢尔伦
伊谢尔伦Original
2017-05-17 14:13:402805Durchsuche

php unterstützt Callback-Funktionen, eine Funktion, die im Vergleich zu anderen Hochsprachen mehr Punkte hinzufügt. Im Vergleich zu JavaScript ist die Verwendung von Callback-Funktionen vor PHP5.3 jedoch nicht sehr flexibel. Es gibt nur zwei Optionen: String-Funktionsname und die Verwendung des Rückgabewerts von create_function . Nach PHP5.3 haben wir eine weitere Option – Anonyme Funktion , auch Abschlussfunktion (Closure) genannt, die es ermöglicht, vorübergehend einen nicht spezifizierten Namen der Funktion zu erstellen, der oft als verwendet wird Wert des Callback-Funktionsparameters. Natürlich gibt es auch andere Anwendungen. Im vorherigen Kapitel haben wir die Verwendung der PHP-Callback-Funktion im Detail vorgestellt. In diesem Kapitel wird auf die benutzerdefinierte Funktion „Anonymous“ oder „Closure“ von PHP eingegangen.

Hier nehmen wir ein Beispiel einer anonymen oder geschlossenen benutzerdefinierten Funktion, deklarieren eine benutzerdefinierte Funktion und weisen einer Variablen eine unbenannte Funktion zu. Fügen Sie direkt nach der Variablen Klammern hinzu und übergeben Sie die Parameter, um die anonyme Funktion aufzurufen und auszugeben.

Der Beispielcode der anonymen Funktion lautet wie folgt:

<?php
/** 匿名或者闭包函数实例 */
 $fun = function($a){
   echo $a;             //将一个没有名字的函数赋值给一个变量$fun
 };
 $fun("php.cn");        //变量后加括号并传参数,调出匿名函数并输出
?>

Anonyme Funktionen können auch als Wert von Variablen verwendet werden. Die direkte Übergabe der anonymen Funktion als Parameter an die Rückruffunktion ist die häufigste Verwendung anonymer Funktionen. Am Ende vergessen Sie, ein Semikolon hinzuzufügen.

Ein Codebeispiel, das beim Aufruf einer Rückruffunktion eine anonyme Funktion als Parameter verwendet, lautet wie folgt:

<?php
/** 申明函数callback,需要传递一个匿名函数作为参数 */
function callback($back){
 echo $back();             //参数只有是一个函数时才能在这里调用
}
callback(function(){        //调用函数的同时直接传入一个匿名函数
 echo "闭包数据";
});
?>

Ein wichtiges Konzept von Abschlüssen ist, dass sie es können in inneren Funktionen verwendet werden. Externe Variablen müssen mit der Abschlussfunktion verbunden werden, und externe Variablen müssen über das Schlüsselwort verwendet werden. Diese Variablen müssen am Kopf der Funktion oder Klasse deklariert werden. Abschlussfunktionen erben Variablen vom übergeordneten Bereich, was sich von der Verwendung globaler Variablen unterscheidet. Globale Variablen existieren in einem globalen Bereich, unabhängig davon, welche Funktion gerade ausgeführt wird. Der übergeordnete Bereich des Abschlusses definiert die Abschlussfunktion, nicht unbedingt die Funktion, die sie aufruft.

Im Folgenden veranschaulichen wir auch die Deklaration einer Funktion und die Übergabe einer anonymen Funktion als Parameter. Der Parameter kann hier nur aufgerufen werden, wenn es sich um eine Funktion handelt. Der Abschluss verwendet das Schlüsselwort use externe Variablen in der internen Funktion. Übergeben Sie die anonyme Funktion direkt beim Aufruf der Funktion.

Der Verwendungscode des Schlüsselworts use lautet wie folgt:

<?php
/** 申明函数callback,需要传递一个匿名函数作为参数 */
function callback($back){
 echo $back();             //参数只有是一个函数时才能在这里调用
}
$var = "测试数据";    //闭包的一个重要概念就是内部函数中使用外部变量,通过 use 关键字实现
callback(function() use(&$var){        //调用函数的同时直接传入一个匿名函数
 echo "闭包数据的:{$var}";
});
?>
Hinweis: Im obigen Beispiel ist die von use referenzierte Variable eine Kopie von $var. Wenn Sie ein vollständiges Zitat wünschen, fügen Sie die Symbole

und wie im obigen Beispiel hinzu.

【Empfohlene verwandte Tutorials】

1. "

php.cn Dugu Jiujian (4) - PHP-Video-Tutorial 2.

Implementierung anonymer Funktionen und Abschlüsse: Prinzipien von Funktionsausdrücken und Abschlüssen


3.

Praktisches PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Implementierung anonymer Funktionen und Schließungen in PHP-Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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