这篇文章主要介绍php如何使用闭包改变上下文引用的变量值,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
使用闭包改变上下文引用的变量值
<?php function closureFunc(){ $number = 100; $anonymousFunc = function() use($number) { $number++; echo $number.PHP_EOL; }; echo $number.PHP_EOL; return $anonymousFunc; } $func = closureFunc();// 这里输出1,直接调用本函数的 echo $number.PHP_EOL; 即为100 $func();// 调用函数的返回值 $anonymousFunc $number++ 即为101 $func(); //101 $func();//101
上面的输入结果,发现后面的两个func()均返回 101,值并未发生改变,如果要累积++效果, 只要加一个 & 引用符号就可以了(匿名函数内的修改也会影响外部变量),修改下:
<?php function closureFunc(){ $number = 100; $anonymousFunc = function() use(&$number) { $number++; echo $number.PHP_EOL; }; echo $number.PHP_EOL; return $anonymousFunc; } $func = closureFunc();// 这里输出1,直接调用本函数的 echo $number.PHP_EOL; 即为100 $func();// 调用函数的返回值 $anonymousFunc $number++ 即为101 $func(); //102 $func();//103
以上是“php如何使用闭包改变上下文引用的变量值”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。