ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
### 概述 匿名函数(Anonymous functions) , 也叫闭包函数(closures) ,允许临时创建一个没有指定名称的函数 . 最经常用作回调函数(callback)参数的值 . ### 使用 闭包函数可以作为变量的值来使用 . ### 实例 ~~~ $message = "Hello"; $example = function()use($message){ //匿名函数要使用外部变量需要使用use echo $message; }; $message = "Hi" $example(); ~~~ ~~~ Hello //也就是说use使用的变量必须在调用前就必须定义好 ~~~ 如果想在调用的时候再确定传入的值可以加上"&" 符号 ~~~ $message = "Hello"; $example = function()use(&$message){ echo $message; }; $message = "Hi" $example(); ~~~ ~~~ Hi ~~~ ### 闭包作为参数 ~~~ function show($name,Closure $func){ echo $name; $func(); } show("jack",function(){ echo "欢迎"; }); ~~~ ~~~ jack 欢迎 ~~~ ### 常见的回调函数和闭包用法 ~~~ class LearnClosure{ public function method1() { return [1, 2]; } public function method2($method_name, Closure $closure) { $result = $this->$method_name(); $closure($result[0], $result[1]); } } $p = new LearnClosure(); $p->method2('method1', function($num1, $num2){ echo $num1 + $num2; }); ~~~ 结果 ~~~ 3 ~~~