- PHP 的闭包(匿名函数)将定义和调用合在一起了,普通函数它定义的位置和调用函数的位置不在一起,不够直观。闭包比较直观。
- PHP普通函数调用函数外部变量,要么global,要么传参。而闭包使用use引入外部变量。
- 闭包写法非常适合用来编写异步非阻塞回调模式的服务器程序(目前没写过这类程序,不太懂)
- 如果希望在闭包函数中修改外部变量,可以在use时为变量增加&引用符号即可. 而对global修饰的变量修改,就是修改原来的变量。use不使用&默认是传值。
global和use修改变量的区别<?php $a = 6; function foo() { global $a; echo $a; $a += 2; echo '<hr>'; echo $a; } foo(); echo '<hr>', $a; function bar(&$a) { return function () use(&$a){ $a += 3; echo '<hr>', $a; echo '<hr>'; }; } bar($a)(); echo '<hr>', $a;
- 参考:http://rango.swoole.com/archives/547

浙公网安备 33010602011771号