Heim > Backend-Entwicklung > PHP-Tutorial > Detaillierte Erläuterung der Verwendung von PHP-Callback-Funktionen und anonymen Funktionen

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

php中世界最好的语言
Freigeben: 2023-03-22 07:20:02
Original
1654 Leute haben es durchsucht

Dieses Mal erkläre ich Ihnen ausführlich die Verwendung von PHP-Rückruffunktionen und anonymen Funktionen. Was sind die Vorsichtsmaßnahmen für die Verwendung von PHP-Rückruffunktionen und anonyme Funktionen wie folgt Dies ist ein praktischer Fall, schauen wir uns ihn an.

Die Beispiele in diesem Artikel beschreiben die Konzepte und die Verwendung von PHP-Rückruffunktionen und anonymen Funktionen. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

1. Rückruffunktion

Die Rückruffunktion von PHP ist eigentlich dieselbe die von C, Java und anderen Sprachen Die Funktion der Rückruffunktion ist genau die gleiche. Während der Ausführung des Hauptthreads springt er plötzlich, um die festgelegte Rückruffunktion auszuführen. Es kehrt zum Hauptthread zurück, um den nächsten Prozess abzuwickeln

Wenn Sie die Rückruffunktion in PHP aufrufen, möchten Sie nicht wie in C und Java direkt den Funktionsnamen als Funktionsparameter verwenden. Verwenden Sie stattdessen die Zeichenfolge Name, der der auszuführenden Funktion in PHP entspricht

1.1. Rückruffunktion ohne Parameter

1.3 Methodenrückruf
<?php
//无参数回调
function callback(){
  echo &#39;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.
Nach dem Login kopieren

<?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.
Nach dem Login kopieren

2. Anonyme Funktion

<?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.
Nach dem Login kopieren

2.1. Anonyme Funktionen in PHP, auch Abschlüsse genannt, ermöglichen die Angabe einer Funktion ohne Namen. Die am häufigsten verwendeten sind die Parameter des Rückrufs Funktion Wert

2.2, Abschluss 2.2.1, Übergabe von Parametern und Referenzierung lokaler Variablen

<?php
$closureFunc = function($str){
  echo $str.'<br/>';
};
$closureFunc("hello world!");
//结果
hello world!
Nach dem Login kopieren

2.2.2. Return-Abschlussfunktion

2.2.3. Der Abschluss ändert den Wert des Kontexts und erfordert
<?php
$closureFunc = function($name){
  $sex = '男';
  $func = function($age)use ($name,$sex){
    echo "$name--$sex--$age<br/>";
  };
  $func(23);
};
$func = $closureFunc("lvfk");
//结果
lvfk--男--23
Nach dem Login kopieren
Referenzübergabe

<?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--男
Nach dem Login kopieren

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website! Empfohlene Lektüre:

<?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
Nach dem Login kopieren

PHP implementiert direkt die Generierung von Plakatwerbung

PHP ermittelt, ob WeChat oder Browser geöffnet ist

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwendung von PHP-Callback-Funktionen und anonymen Funktionen. 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