• PHP一个典型的闭包实例


    <?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);
  • 相关阅读:
    Scala window下安装
    HIVE 总结
    mapreduce源码解析以及优化
    Hadoop2.x + eclipse 插件配置
    python spark
    Hive与Hbase关系整合
    Sqoop架构以及应用介绍
    flume
    SOAP
    Leetcode#75 Sort Colors
  • 原文地址:https://www.cnblogs.com/gide/p/5275204.html
Copyright © 2020-2023  润新知