Heim > Backend-Entwicklung > PHP-Tutorial > Wie implementiert man Rückrufe in PHP?

Wie implementiert man Rückrufe in PHP?

青灯夜游
Freigeben: 2023-04-05 15:34:01
Original
5601 Leute haben es durchsucht

In PHP ist Callback ein Funktionsobjekt/eine Referenz vom aufrufbaren Typ; Callback-Variablen (oder aufrufbare Variablen) können als Funktionen, Objektmethoden und statische Klassenmethoden verwendet werden. Es gibt viele Möglichkeiten, Rückrufe zu implementieren. In diesem Artikel werden einige davon vorgestellt. Ich hoffe, dass sie für alle hilfreich sind. [Empfohlenes Video-Tutorial: PHP-Tutorial]

Wie implementiert man Rückrufe in PHP?

1. Beispiel: use call_user_func( )-Funktion ruft eine Funktion auf, deren Argument der Funktionsname ist.

<?php 
header("content-type:text/html;charset=utf-8");
function text1(){
    echo &#39;这个是text1<br>&#39;;
};
call_user_func(&#39;text1&#39;);
  
?>
Nach dem Login kopieren

Ausgabe:

这个是text1
Nach dem Login kopieren

Erklärung: Eine call_user_func()-Funktion wird aufgerufen, und dann ruft die call_user_func()-Funktion während der Ausführung die text1()-Funktion zurück.

2. Rückruf einer statischen Klassenmethode

Beispiel: Verwenden Sie die Funktion call_user_func(), um eine statische Klassenmethode aufzurufen, wobei der Parameter ein Parameter ist, der den Klassennamen und enthält die aufzurufende Methode.

<?php 
header("content-type:text/html;charset=utf-8");
class Demo { 
  
    // 用于输出字符串的函数
    static function someFunction() { 
        echo "父级函数输出 <br>"; 
    } 
} 
  
class Article extends Demo { 
  
    // 用于输出字符串的函数 
    static function someFunction() { 
        echo "子级函数输出 <br>"; 
    }    
} 
  
// 静态类方法回调
call_user_func(array(&#39;Article&#39;, &#39;someFunction&#39;)); 
  
call_user_func(&#39;Article::someFunction&#39;); 
  
// 相对静态类方法回调
call_user_func(array(&#39;Article&#39;, &#39;parent::someFunction&#39;)); 
  
?>
Nach dem Login kopieren

Ausgabe:

子级函数输出
子级函数输出
父级函数输出
Nach dem Login kopieren

3. Rückruf der Objektmethode

Beispiel: Verwenden Sie die Funktion call_user_func(), um die Objektmethode aufzurufen, wobei der Parameter ist die enthaltende Objektvariable und ein Array von Zeichenfolgennamen der aufzurufenden Methoden.

<?php 
header("content-type:text/html;charset=utf-8");
class Demo { 
  
    // 输出字符串的函数
    static function someFunction() { 
        echo "PHP中文网 <br>"; 
    } 
  
    // 输出字符串的函数
    public function __invoke() { 
        echo "__invoke()函数<br>"; 
    } 
} 
  
// 类对象
$obj = new Demo(); 
  
// 对象方法调用
call_user_func(array($obj, &#39;someFunction&#39;)); 
  
call_user_func($obj); 
  
?>
Nach dem Login kopieren

Ausgabe:

PHP中文网 
__invoke()函数
Nach dem Login kopieren


4. Abschlussrückruf

Beispiel: Verwenden Sie die Funktion array_map(), um die Abschlussfunktion Array effektiv zuzuweisen of arguments macht eine Abschlussfunktion durch einen Standardaufruf oder durch Zuordnen einer Abschlussfunktion aufrufbar, wobei arguments ein Array der Abschlussfunktion und ihrer gültigen Argumente ist.

<?php 
header("content-type:text/html;charset=utf-8");
// 用于输出<br>
$print_function = function($string) { 
    echo $string."<br>"; 
}; 
  
// 字符串数组 
$string_array = array("PHP", "Python", "MySQL"); 
  
// 可调用闭包
array_map($print_function, $string_array);
?>
Nach dem Login kopieren

Ausgabe:

PHP
Python
MySQL
Nach dem Login kopieren

Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Lernen aller hilfreich sein wird. Weitere spannende Inhalte finden Sie in den entsprechenden Tutorial-Kolumnen auf der chinesischen PHP-Website! ! !

Das obige ist der detaillierte Inhalt vonWie implementiert man Rückrufe in PHP?. 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