In diesem Artikel werden hauptsächlich das Konzept und die Verwendung der PHP-Rückruffunktion vorgestellt, das Konzept und das Prinzip der Rückruffunktion kurz vorgestellt und die damit verbundenen Verwendungsfähigkeiten der Rückruffunktion anhand von Beispielen analysiert
Die Details sind wie folgt:
1. Das Konzept der Rückruffunktion
Sehen Sie sich zunächst die Rückruffunktion in C-Sprache an : Die Rückruffunktion ist eine Passfunktion. Die vom Zeiger aufgerufene Funktion. Wenn Sie einen Funktionszeiger (Adresse) als Parameter an eine andere Funktion übergeben und dieser Zeiger zum Aufrufen der Funktion verwendet wird, auf die er zeigt, sprechen wir von einer Callback-Funktion. Die Rückruffunktion wird nicht direkt vom Implementierer der Funktion aufgerufen, sondern von einer anderen Partei, wenn ein bestimmtes Ereignis oder eine bestimmte Bedingung eintritt, um auf das Ereignis oder die Bedingung zu reagieren.
Das Konzept der Rückruffunktionen in anderen Sprachen ist ähnlich, aber die Implementierungsmechanismen der Rückruffunktionen in verschiedenen Sprachen sind unterschiedlich. Im Allgemeinen ist die Rückruffunktion eine Funktion, die wir definieren, aber sie ist es nicht direkt Anstatt es über eine andere Funktion aufzurufen, ruft diese Funktion die Rückruffunktion auf, indem sie ihren Namen und ihre Parameter empfängt.
2. Implementierung von Callback-Funktionen in PHP
php bietet zwei integrierte Funktionen call_user_func()
und call_user_func_array()
, die Callback-Funktionen bereitstellen Unterstützung. Der Unterschied zwischen diesen beiden Funktionen besteht darin, dass call_user_func_array die Parameter der Callback-Funktion in Form eines Arrays empfängt. Sie können es anhand seines Prototyps erkennen: mixed call_user_func_array ( callable $callback , array $param_arr ) , es hat nur zwei Parameter. Und call_user_func($callback, Parameter 1, Parameter 2,...) Die Anzahl der Parameter von wird entsprechend den Parametern der Callback-Funktion bestimmt.
So implementieren Sie Rückrufe für globale Funktionen in Skripten, nicht statische Methoden, die $this nicht in Klassen verwenden, nicht statische Methoden, die $this in Klassen verwenden (Objekte müssen übergeben werden) und statische Methoden In Klassen ist der Code, der den Test bestanden hat, wie folgt.
<?php //普通函数 function f1($arg1,$arg2) { echo __FUNCTION__.'exec,the args is:'.$arg1.' '.$arg2; echo "<br/>"; } //通过call_user_func调用函数f1 call_user_func('f1','han','wen'); //通过call_user_func_array调用函数 call_user_func_array('f1',array('han','wen')); class A { public $name; function show($arg1) { echo 'the arg is:'.$arg1."<br/>"; echo 'my name is:'.$this->name; echo "<br/>"; } function show1($arg1,$arg2) { echo __METHOD__.' exec,the args is:'.$arg1.' '.$arg2."<br/>"; } public static function show2($arg1,$arg2) { echo __METHOD__.' of class A exec, the args is:'.$arg1.' '.$arg2."<br/>"; } } //调用类中非静态成员函数,该成员函数中有$this调用了对象中的成员 $a = new A; $a->name = 'wen'; call_user_func_array(array($a,'show',),array('han!')); //调用类中非静态成员函数,没有对象被创建,该成员函数中不能有$this call_user_func_array(array('A','show1',),array('han!','wen')); //调用类中静态成员函数 call_user_func_array(array('A','show2'),array('argument1','argument2'));
Laufergebnis:
f1exec,the args is:han wen f1exec,the args is:han wen the arg is:han! my name is:wen A::show1 exec,the args is:han! wen A::show2 of class A exec, the args is:argument1 argument2
Wie Promise die Callback-Funktion im Code ersetzt
Detaillierte Erläuterung des Anwendungsfalls der JS-Callback-Funktion
Fallbeschreibung der JS-Callback-Funktion verwenden
Das obige ist der detaillierte Inhalt vonDas Konzept und die Verwendung von PHP-Callback-Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!