您好,欢迎访问一九零五行业门户网

php 53新增的闭包语法介绍function use {} jquery function objective function likelihood function

转载原帖址:http://blog.csdn.net/lgg201/article/details/6127564
scalar}.
/n;};$obj = (object) hello, everybody;callback($callback);//输出: this is a closure use object, msg is: hello, everybody.
/n//还是按照上面的步骤, 按部就班的来吧://1. obj名字指向hello, everyone对象//2. 闭包产生一个引用指向hello, everyone对象//3. 修改obj名字指向的对象(即hello, everyone对象)的scalar值//4. 执行闭包, 输出的自然是hello, everybody, 因为其实只有一个真正的对象$obj = (object) hello, everyone;$callback = function()use($obj) {printthis is a closure use object, msg is: {$obj->scalar}.
/n;};$obj->scalar = hello, everybody;callback($callback);//输出: this is a closure use object lazy bind, msg is: hello, everybody.
/n//闭包引用的是什么呢? &$obj, 闭包产生的引用指向$obj这个名字所指向的地址.//因此, 无论obj怎么变化, 都是逃不脱的....//所以, 输出的就是改变后的值$obj = (object) hello, everyone;$callback = function()use(&$obj) {printthis is a closure use object lazy bind, msg is: {$obj->scalar}.
/n;};$obj = (object) hello, everybody;callback($callback);/** * 一个利用闭包的计数器产生器 * 这里其实借鉴的是python中介绍闭包时的例子... * 我们可以这样考虑: * 1. counter函数每次调用, 创建一个局部变量$counter, 初始化为1. * 2. 然后创建一个闭包, 闭包产生了对局部变量$counter的引用. * 3. 函数counter返回创建的闭包, 并销毁局部变量, 但此时有闭包对$counter的引用, * 它并不会被回收, 因此, 我们可以这样理解, 被函数counter返回的闭包, 携带了一个游离态的 * 变量. * 4. 由于每次调用counter都会创建独立的$counter和闭包, 因此返回的闭包相互之间是独立的. * 5. 执行被返回的闭包, 对其携带的游离态变量自增并返回, 得到的就是一个计数器. * 结论: 此函数可以用来生成相互独立的计数器. */functioncounter() {$counter = 1; returnfunction()use(&$counter) {return$counter ++;};}$counter1 = counter();$counter2 = counter();echocounter1: . $counter1() .
/n;echocounter1: . $counter1() .
/n;echocounter1: . $counter1() .
/n;echocounter1: . $counter1() .
/n;echocounter2: . $counter2() .
/n;echocounter2: . $counter2() .
/n;echocounter2: . $counter2() .
/n;echocounter2: . $counter2() .
/n;?>
').addclass('pre-numbering').hide(); $(this).addclass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadein(1700); }); }); 以上就介绍了php 53新增的闭包语法介绍function use {},包括了function方面的内容,希望对php教程有兴趣的朋友有所帮助。
其它类似信息

推荐信息