Heim > Backend-Entwicklung > PHP-Tutorial > Anonyme Funktionen und Schließungsverwendung in PHP

Anonyme Funktionen und Schließungsverwendung in PHP

墨辰丷
Freigeben: 2023-03-25 20:24:01
Original
1439 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich die Verwendung anonymer Funktionen und Schließungen in PHP vor. Ich hoffe, dass er für alle hilfreich ist.

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

Anonyme Funktionen (Anonyme Funktionen) auch in PHP Mit sogenannten Abschlussfunktionen (closes) können Sie eine Funktion ohne Namen angeben. Am häufigsten wird der Parameterwert der Rückruffunktion verwendet. (http://php.net/manual/zh/functions.anonymous.php)

Definition der anonymen Funktion:

$closureFunc = function(){

    ....

 };
Nach dem Login kopieren

z.B : Weisen Sie die anonyme Funktion einer Variablen zu und rufen Sie sie über die Variable auf



 $closureFunc = function($str){

   echo $str;

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


Ausgabe: Hallo Welt!

2: Schließung

2.1 Fügen Sie anonyme Funktionen in gewöhnliche Funktionen ein, oder Sie können anonyme Funktionen einfügen Zurück, dies stellt einen einfachen Abschluss dar



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


2.2 Referenz lokal Variablen in anonymen Funktionen



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


Nachdem die obige Funktion ausgeführt wurde, wird ein Hinweisfehler angezeigt wird gemeldet, was darauf hinweist, dass wir auf diese Weise keine lokalen Variablen in anonymen Funktionen verwenden können. Zu diesem Zeitpunkt müssen wir ein PHP-Schlüsselwort verwenden. Der Code lautet wie folgt:



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


 2.3  返回匿名函数



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


2.4 当我们在返回匿名函数时候怎么给匿名函数传参呢? 其实跟普通函数传参数一样



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 怎么用闭包来改变上下文引用的变量值?



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

Anonyme Funktionen und Schließungsverwendung in PHP

看上面的输入结果,显然没有达到目的, 其实只要加一个 & 引用符号就可以了



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 把匿名函数当作参数传递



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

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

相关推荐:

关于JavaScript 闭包的相关知识的了解和使用

js闭包使用详解

关于Python闭包机制的深入理解

Das obige ist der detaillierte Inhalt vonAnonyme Funktionen und Schließungsverwendung 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