加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

PHP 闭包获取外部变量和global要害字声明变量的区别讲授

发布时间:2021-03-31 11:41:42 所属栏目:编程 来源:网络整理
导读:最近在进修workerman的时辰较量频仍的打仗到回调函数,行使中常常会由于worker的行使方法差异,会用这两种差异的方法去挪用外部的worker变量,这里就清算一下PHP闭包获取外部变量和global要害字声明变量的区别。 闭包 闭包是一个常见的观念,我们凡是可以将

最近在进修workerman的时辰较量频仍的打仗到回调函数,行使中常常会由于worker的行使方法差异,会用这两种差异的方法去挪用外部的worker变量,这里就清算一下PHP闭包获取外部变量和global要害字声明变量的区别。

闭包

闭包是一个常见的观念,我们凡是可以将其与回调函数共同行使,可以使代码越发简捷易读。

闭包可以 通过拷贝的方法 让函数行使父浸染域中的变量。如:

global要害字声明变量

通过global声明变量同样可以使函数体挪用到函数外部的变量,不外global与use差异,globle要害字会使建设 一个与外部变量同名的引用 ,而且在函数内对变量作出修改同样会浸染域外部变量。

这里只是建设一个同名引用罢了,并不会改变本来外部变量$global的浸染域,也就是说在其它一个函数中挪用该仍旧必要声明可能行使闭包

输出

再轻微改一下代码,这样更轻易比拟闭包和global要害字声明变量这两种会见外部变量方法的区别。

这里b和d两个输出可以看出来,global改变了外部变量的值,而闭包方法并没有。

输出:

最后再贴一个官方文档中较量经典的行使匿名函数,闭包与回调函数共同的例子:

products[$product] = $quantity; } public function getQuantity($product) { return isset($this->products[$product]) ? $this->products[$product] : FALSE; } public function getTotal($tax) { $total = 0.00; $callback = function ($quantity,$product) use ($tax,&$total) { $pricePerItem = constant(__CLASS__ . "::PRICE_" . strtoupper($product)); $total += ($pricePerItem * $quantity) * ($tax + 1.0); }; array_walk($this->products,$callback); return round($total,2); } } $my_cart = new Cart; $my_cart->add('butter',1); $my_cart->add('milk',3); $my_cart->add('eggs',6); print $my_cart->getTotal(0.05) . "n";

总结

以上所述是小编给各人先容的PHP 闭包获取外部变量和global要害字声明变量的区别讲授,但愿对各人有所辅佐。措施员碰着题目城市上(编程之家52php.cn)查找题目解答要领!假如认为站点还不错,顺手转发给措施员伴侣一下!

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读