• 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);
  • 相关阅读:
    BZOJ5473: 仙人掌
    BZOJ5289: [Hnoi2018]排列
    BZOJ5322: [JXOI2018]排序问题
    BZOJ5323:[JXOI2018]游戏
    webstorm引用ESLint进行静态代码检查
    React基础知识
    静态资源优化方案
    Nodejs 饭店
    linux du和df
    Docker知识-1
  • 原文地址:https://www.cnblogs.com/gide/p/5275204.html
Copyright © 2020-2023  润新知