继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

PHP匿名函数

aluckdog
关注TA
已关注
手记 493
粉丝 68
获赞 394

<?php

// 一个基本的购物车,包括一些已经添加的商品和每种商品的数量。

// 其中有一个方法用来计算购物车中所有商品的总价格,该方法使

// 用了一个 closure 作为回调函数。

class Cart

{

    const PRICE_BUTTER  = 1.00;

    const PRICE_MILK    = 2.00;

    const PRICE_EGGS    = 3.00;

 

    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(__CLASS__ . "::PRICE_" .

                    strtoupper($product));

                $total += ($pricePerItem * $quantity) * ($tax + 1.0);

            };

         

        array_walk($this->products, $callback);

        return round($total, 2);

    }

}

 

$my_cart = new Cart;

 

// 往购物车里添加条目

$my_cart->add('butter', 1);

$my_cart->add('milk', 2);

$my_cart->add('eggs', 3);

 

// 打出出总价格,其中有 5% 的销售税.

print $my_cart->getTotal(0.05) . "\n";

// 最后结果是 14.7 

?>

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP