Heim > Backend-Entwicklung > PHP-Tutorial > Detaillierte Erläuterung anonymer Funktionen und Abschlussbeispiele in PHP

Detaillierte Erläuterung anonymer Funktionen und Abschlussbeispiele in PHP

陈政宽~
Freigeben: 2023-03-11 17:36:01
Original
1018 Leute haben es durchsucht

1: Anonyme Funktion

Mit der anonymen Funktion in PHP, auch Abschlussfunktion genannt, können Sie eine Funktion ohne Namen angeben. Am häufigsten wird der Parameterwert der Rückruffunktion verwendet.

Definition der anonymen Funktion:

$closureFunc = function(){    .... };
   eg: 把匿名函数赋值给变量,通过变量来调用
$closureFunc = function($str){   echo $str;  };  $closureFunc("hello world!");
  输出: hello world!
Nach dem Login kopieren

2: Schließung

2.1 Fügen Sie die anonyme Funktion in eine normale Funktion ein, oder Sie können die anonyme Funktion zurückgeben, die erstellt wird ein einfacher Abschluss

function closureFunc1(){    $func = function(){        echo "hello";
    };    $func();
}
closureFunc1();//输出: hello
Nach dem Login kopieren


2.2 Referenzierte lokale Variablen in anonymen Funktionen

function closureFunc2(){    $num = 1;    $func = function(){        echo $num;
    };    $func();
}
closureFunc2();//Notice: Undefined variable: num
Nach dem Login kopieren


Nach der obigen Funktion Wird ausgeführt, wird ein Hinweisfehler gemeldet, der darauf hinweist, dass wir auf diese Weise keine lokalen Variablen in anonymen Funktionen verwenden können. Der Code lautet wie folgt:

function closureFunc2(){    $num = 1;    $func = function() use($num){        echo $num;
    };    $func();
}
closureFunc2();//输出: 1
Nach dem Login kopieren


2.3 Anonyme Funktion zurückgeben

function closureFunc3(){    $num = 1;    $func = function() use($num){        echo $num;
    };    return $func;
}$func = closureFunc3(); //函数返回匿名函数$func(); //然后我们在用$func() 调用//输出: 1
Nach dem Login kopieren


2.4 Wie übergeben wir Parameter an die anonyme Funktion, wenn wir sie zurückgeben? Tatsächlich ist es dasselbe wie die Übergabe von Parametern an eine normale Funktion

function closureFunc4(){    $num = 1;    $func = function($str) use($num){        echo $num;        echo "\n";        echo $str;
    };    return $func;
}$func = closureFunc4();$func("hello, closure4");//输出:
//1
//hello, closure4
Nach dem Login kopieren


2.5 So verwenden Sie Abschlüsse, um die vom Kontext referenzierten Variablenwerte zu ändern ?

function closureFunc5(){    $num = 1;    $func = function() use($num) {        echo "\n";        $num++;        echo $num;
    };    echo "\n";    echo $num;    return $func;
}$func = closureFunc5();$func();$func();$func();//输出:
// 1
// 2
// 2
// 2
Nach dem Login kopieren


Wenn man sich die obigen Eingabeergebnisse ansieht, ist es offensichtlich, dass der Zweck nicht erreicht wurde. Fügen Sie einfach ein &-Referenzsymbol hinzu 🎜>

function closureFunc5(){    $num = 2;    $func = function() use(&$num) {        echo "\n";        $num++;        echo $num;
    };    echo "\n";    echo $num;    return $func;
}$func = closureFunc5();$func();$func();$func();//输出:
// 2
// 3
// 4
// 5
Nach dem Login kopieren


2.6 Übergeben Sie anonyme Funktionen als Parameter

function callFunc($func){    $func("argv");
}
callFunc(function($str){    echo $str;
})//输出:
// argv
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung anonymer Funktionen und Abschlussbeispiele 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