Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der PHP-Callback-Funktionen und anonymen Funktionen

Detaillierte Erläuterung der PHP-Callback-Funktionen und anonymen Funktionen

小云云
小云云Original
2018-03-19 09:55:241410Durchsuche

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 &#39;execute no parameters callback.<br/>&#39;;
}
function main($callback){
  echo &#39;execute main start.<br/>&#39;;
  $callback();
  echo &#39;execute main end.<br/>&#39;;
}
main(&#39;callback&#39;);
//结果
ecute main start.
execute no parameters callback.
execute main end.
1.2. Globale Rückruffunktion


<?php
//全局函数回调
function callback($a,$b){
  echo "$a<====>$b.<br/>";
}
$func = &#39;callback&#39;;
call_user_func($func, 1,2);
call_user_func_array($func, array(1,2));
//结果
1<====>2.
1<====>2.
1.3 >


<?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, &#39;callback&#39;), 1,2);
call_user_func_array(array($test, &#39;callback&#39;), array(1,2));
//非静态方法调用方式二
$func = &#39;callback&#39;;
$test->$func(7,9);
//静态方法调用方式
call_user_func(array(&#39;Test&#39;, &#39;staticCallback&#39;), 4,6);
call_user_func_array(array(&#39;Test&#39;, &#39;staticCallback&#39;), 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. Anonyme Funktionen (Anonyme Funktionen) in PHP, auch Abschlüsse genannt, sind erlaubt. Geben Sie eine Funktion ohne Namen an. Die am häufigsten verwendeten sind der Parameterwert der Callback-Funktion

2.2, der Abschluss

2.2.1, die Übergabe von Parametern und die lokale Referenzierung Variablen


<?php
$closureFunc = function($str){
  echo $str.&#39;<br/>&#39;;
};
$closureFunc("hello world!");
//结果
hello world!

2.2.2. Schließungsfunktion zurückgeben


<?php
$closureFunc = function($name){
  $sex = &#39;男&#39;;
  $func = function($age)use ($name,$sex){
    echo "$name--$sex--$age<br/>";
  };
  $func(23);
};
$func = $closureFunc("lvfk");
//结果
lvfk--男--23
2.2.3. Schließungsänderungen context Der Wert muss als Referenz übergeben werden


<?php
$closureFunc = function($name){
  echo &#39;closureFunc &#39;;
  $sex = &#39;男&#39;;
  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
Analyse der PHP-Callback-Funktion

Konzept und Verwendung der PHP-Callback-Funktion

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!

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