在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
PHP>v5.3闭包函数,闭包函数没有函数名称,直接在function()传入变量即可 使用时将定义的变量当作函数来处理 匿名函数也叫闭包函数(closures允许创建一个没有指定没成的函数,最经常用作回调函数参数的值。 闭包函数没有函数名称,直接在function()传入变量即可 使用时将定义的变量当作函数来处理。 闭包内部函数使用了外部函数中定义的变量.在PHP新开放的闭包语法中, 我们就是用use来使用闭包外部定义的变量的。 正常函数: function cl($name){ return sprintf('hello %s',$name); } 打印: echo cl('world');
结果:hello world 匿名函数: $cl = function($name){ return sprintf('hello %s',$name); }; echo $cl('world'); 结果:hello world 打印$cl 类型 object(Closure)#1 (1) { ["parameter"]=> array(1) { ["$name"]=> string(10) "" } } 直接通过定义为匿名函数的变量名称来调用 echo preg_replace_callback('~-([a-z])~', function ($match) { return strtoupper($match[1]); }, 'hello-world'); 结果:helloWorld 使用use $message = 'hello'; $example = function() use ($message){ var_dump($message); }; echo $example();
结果:string(5) "hello" 带参数: $message = 'hello'; $example = function ($data) use ($message){ return "{$data},{$message}"; }; echo $example('world'); 结果:world,hello
闭包不会改变外部变量 $message = 'hello'; $test = function () use ($message){ var_dump($message); $message = 'Hi……'; }; $test(); $message = 'Ni Hao!'; $test(); 结果: string(5) "hello" string(5) "hello"
转载来自:http://www.phperz.com/article/16/0227/190900.html
|
2022-08-30
2022-08-17
2022-11-06
2022-08-15
2022-08-18
请发表评论