PHP匿名関数(クロージャ)

WBOY
WBOYオリジナル
2016-06-23 13:38:241165ブラウズ

匿名関数 (匿名関数) は、クロージャー関数 (クロージャー) とも呼ばれ、指定された名前なしで関数を一時的に作成できます。コールバック関数の引数として最も一般的に使用される値。もちろん、他のアプリケーションもあります。

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 は文字列形式で定数の値を返すために使用されます

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。