PHP一个典型的闭包实例
2016-03-14 11:58
543 查看
<?php // 一个基本的购物车,包括一些已经添加的商品和每种商品的数量。 // 其中有一个方法用来计算购物车中所有商品的总价格,该方法使 // 用了一个 closure 作为回调函数。 class Carts { const PRICE_BUTTER = 1.0; const PRICE_MILK = 3.0; const PRICE_EGGS = 6.95; protected $products = array(); public function add($product, $quantity) { $this->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(self."::PRICE_".strtoupper($product)); $total += ($pricePerItem * $quantity) * ($tax + 1.0); }; array_walk($this->products,$callback); return round($total,2); } } //往购物车添加 $my_cart = new Carts(); $my_cart->add('butter',1); $my_cart->add('milk',3); $my_cart->add('eggs',6); //打印税 echo $my_cart->getTotal(0.05);
相关文章推荐
- YII Framework框架教程之缓存用法详解
- php 调用远程url的六种方法小结
- PHP实现异步调用方法研究
- JPHP
- YII Framework框架教程之安全方案详解
- Mac运行Tensorflow的matplotlib问题
- PHP中GBK和UTF8乱码解决方案
- php附近的人
- YII Framework框架教程之日志用法详解
- YII Framework教程之异常处理详解
- 什么是PHP
- php排序法--冒泡排序,选择排序,插入排序
- PHP常用函数
- php 数组 添加元素、删除元素
- Zend Framework教程之Application用法实例详解
- 提高php编程效率的小结
- ViewPager使用FragmentPagerAdapter卡顿问题解决
- Yii2修改默认控制器
- Zend Framework自定义Helper类相关注意事项总结
- Zend Framework教程之Bootstrap类用法概述