Heim > Backend-Entwicklung > PHP-Tutorial > Anonyme Funktionen und Abschlüsse in PHP

Anonyme Funktionen und Abschlüsse in PHP

陈政宽~
Freigeben: 2023-03-11 17:46:02
Original
1010 Leute haben es durchsucht

1: Anonyme Funktionen (kann nur in PHP5.3.0 oder höher verwendet werden)

Anonyme Funktionen in PHP, auch genannt Abschlussfunktion (closes), ermöglicht die Angabe einer Funktion ohne Namen. Am häufigsten wird der Parameterwert der Callback-Funktion verwendet.

Definition der anonymen Funktion:

$closureFunc = function(){

    ....

 };
Nach dem Login kopieren

z. B.: Weisen Sie die anonyme Funktion der -Variable zu und rufen Sie sie über die Variable

 $closureFunc = function($str){

   echo $str;

  };  $closureFunc("hello world!");
Nach dem Login kopieren

auf Ausgabe: Hallo Welt!

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, Dies stellt einen einfachen Abschluss dar

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

2.2 In der anonymen Funktion verweist auf die lokale Variable

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

nach der obigen Funktion Beim Ausführen wird ein Hinweisfehler gemeldet, der darauf hinweist, dass wir in anonymen Funktionen keine lokalen Variablen 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 Rückkehr zur anonymen Funktion

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 Wie verwende ich Abschlüsse, um die Variablenwerte zu ändern, auf die der Kontext verweist?

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 Anonyme Funktionen als Übergabeparameter behandeln

function callFunc($func){    $func("argv");
}

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


Das obige ist der detaillierte Inhalt vonAnonyme Funktionen und Abschlüsse 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