/*匿名函数(Anonymousfunctions),也称为闭包函数(closures),允许临时创建一个没有指定名称的函数。最常用作回调函数(callback)参数的值。当然,还有其他应用程序。匿名函数目前是通过Closure类实现的。一个基本的购物车,其中包含一些已添加的商品以及每件商品的数量。这些方法之一用于计算购物车中所有商品的总价,它使用闭包作为回调函数。这些变量必须在函数或类的头部声明。从父作用域继承变量与使用全局变量不同。全局变量存在于全局范围内,无论当前正在执行哪个函数。闭包的父作用域是定义闭包的函数(不一定是调用它的函数)。示例如下:*/products[$product]=$quantity;}publicfunctiongetQuantity($product){returnisset($this->products[$product])?$this->产品[$产品]:FALSE;}publicfunctiongetTotal($tax){$total=0.00;$callback=function($quantity,$product)use($tax,&$total){$pricePerItem=constant(__CLASS__."::PRICE_".strtoupper($product));}$总计+=($pricePerItem*$quantity)*($tax+1.0);};array_walk($this->products,$callback);返回回合($总计,2);;}}$my_cart=newCart;//去购物车里添加条件$my_cart->add('butter',1);$my_cart->add('milk',3);$my_cart->add('eggs',6);//打出总价,其中有5%的销售税。打印$my_cart->getTotal(0.05)。"\n";//最终结果为54.29
