PHP 5.3.4 的闭包: function() use(&$param)
PHP 的变量作用域是函数级的,没有层级作用域
5.3.4 增加了闭包:
1、可以用变量引用函数
2、可以声明匿名函数
3、可以使用函数作为 函数的参数和返回值
4、声明函数时可以使用 use($param) 来向函数中传入函数外的变量,结合变量引用来实现闭包
function closureCreater(){ $x =1; return function($fun=null) use(&$x){//按引用传值 echo "<br />".$x++; $fun and $fun(); }; } $x = "hello world"; $test = closureCreater(); $test(); $test(function(){ echo "closure test one"; }); $test(function(){ echo "closure test two"; }); $test(function() use($x){ echo "<br />".$x;}); //将函数保存为数组元素 $x = 'outer param.'; $arr = array(); $arr[] = function($str)use($x){ return $str.$x; }; echo $arr[0]('test fun in arr,'); //test fun in arr,outer param.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述