首頁 > 後端開發 > php教程 > PHP匿名函数(闭包)

PHP匿名函数(闭包)

WBOY
發布: 2016-06-23 13:38:24
原創
1171 人瀏覽過

 

匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数。最经常用作回调函数(callback)参数的值。当然,也有其它应用的情况。

结合array_walk和匿名函数来实现一个结算功能

array_walk() 函数对数组中的每个元素应用回调函数。如果成功则返回 TRUE,否则返回 FALSE。

 1 <?php 2 class anyMouseTest{ 3         //定义商品类型、价格 4     const IPHONE6_PRICE = 5500; 5     const XIAOMI4_PRICE = 1999; 6     const HONERX_PRICE = 799; 7  8     private $_productSort; 9     private $_products;10     11     public function __construct(){12         $this->_productSort = array('iphone6','xiaomi4','honerx');13         $this->_products = array();14     }15 16     public function addProduct($product , $sum){17         if(in_array($product , $this->_productSort) && is_int($sum)){18             $this->_products[$product] = $sum;19         }20     }21 22     public function getCount($tax){23         $count = 0;24 25         $callback = function($sum , $product) use ($tax , &$count){26             $price = constant(__CLASS__.'::'.strtoupper($product).'_PRICE');27             $curPrice = $price* $sum * $tax;28             $count += $curPrice;29         };30 31         array_walk($this->_products, $callback);32         return $count;33     }34 }35 36 $oanyMouse = new anyMouseTest;37 38 $oanyMouse->addProduct('iphone6',1);39 $oanyMouse->addProduct('honerx',2);40 echo $oanyMouse->getCount(1);
登入後複製

其中constant用于返回字符串形式常量的值

 

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板