In diesem Artikel werden hauptsächlich die Konzepte und die Verwendung von PHP-Rückruffunktionen und anonymen Funktionen vorgestellt. Er analysiert die Konzepte, Funktionen, Verwendungsmethoden und zugehörigen Vorsichtsmaßnahmen für den Betrieb von PHP-Rückruffunktionen und anonymen Funktionen anhand von Beispielen Im Folgenden kann Xinwang jedem helfen.
1. Rückruffunktion
Die Rückruffunktion von PHP hat tatsächlich die gleiche Funktion wie die Rückruffunktion in C, Java und anderen Sprachen Bei der Ausführung des Hauptthreads wird plötzlich gesprungen, um die festgelegte Rückruffunktion auszuführen.
Nachdem die Rückruffunktion ausgeführt wurde, kehrt sie zum Hauptthread zurück, um den nächsten Prozess zu verarbeiten
Und der Rückruf ist In PHP aufgerufene Funktionen möchten den Funktionsnamen nicht direkt als Funktionsparameter wie C und Java verwenden. Verwenden Sie stattdessen den Zeichenfolgennamen, der der Funktion in PHP entspricht, um
1.1, Parameterlosen Rückruf
<?php //无参数回调 function callback(){ echo 'execute no parameters callback.<br/>'; } function main($callback){ echo 'execute main start.<br/>'; $callback(); echo 'execute main end.<br/>'; } main('callback'); //结果 ecute main start. execute no parameters callback. execute main end.
<?php //全局函数回调 function callback($a,$b){ echo "$a<====>$b.<br/>"; } $func = 'callback'; call_user_func($func, 1,2); call_user_func_array($func, array(1,2)); //结果 1<====>2. 1<====>2.
<?php class Test{ //成员函数 function callback($a,$b){ echo "callback $a<====>$b.<br/>"; } public static function staticCallback($a,$b){ echo "staticCallback $a<====>$b.<br/>"; } } //非静态方法调用方式一 $test = new Test(); call_user_func(array($test, 'callback'), 1,2); call_user_func_array(array($test, 'callback'), array(1,2)); //非静态方法调用方式二 $func = 'callback'; $test->$func(7,9); //静态方法调用方式 call_user_func(array('Test', 'staticCallback'), 4,6); call_user_func_array(array('Test', 'staticCallback'), array(4,6)); call_user_func_array("Test::staticCallback", array(4,6)); //结果 callback 1<====>2. callback 1<====>2. callback 7<====>9. staticCallback 4<====>6. staticCallback 4<====>6. staticCallback 4<====>6.
2.2, der Abschluss 2.2.1, die Übergabe von Parametern und die lokale Referenzierung Variablen
<?php $closureFunc = function($str){ echo $str.'<br/>'; }; $closureFunc("hello world!"); //结果 hello world!
<?php $closureFunc = function($name){ $sex = '男'; $func = function($age)use ($name,$sex){ echo "$name--$sex--$age<br/>"; }; $func(23); }; $func = $closureFunc("lvfk"); //结果 lvfk--男--23
<?php $closureFunc = function($name){ echo 'closureFunc '; $sex = '男'; echo "$name+++$sex<br/>"; $func = function()use ($name,$sex){ echo "$name--$sex<br/>"; }; return $func; }; $func = $closureFunc("lvfk"); $func(); $func(); //结果 closureFunc lvfk+++男 lvfk--男 lvfk--男
Das Obige ist eine einfache Anwendung des Verschlusses. Durch den Verschluss ist ersichtlich, dass er verwendet wird Außerhalb des Funktionsabschlusses kann der in den Abschluss übergebene Parameterinhalt tatsächlich der Inhalt des Kontextobjekts sein Sie können den Kontextobjektwert auch innerhalb des Abschlusses ändern, er muss jedoch als Referenz übergeben werden.
Verwandte Empfehlungen:
<?php $closureFunc = function($name){ $age = 1; echo "$name+++$age<br/>"; $func = function()use ($name,&$age){ $age++; echo "$name--$age<br/>"; }; return $func; }; $func = $closureFunc("lvfk"); $func(); $func(); $func(); //结果 lvfk+++1 lvfk--2 lvfk--3 lvfk--4
Detaillierte Erläuterung der Verwendung von PHP-Callback-Funktionen und anonymen Funktionen
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der PHP-Callback-Funktionen und anonymen Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!