为了账号安全,请及时绑定邮箱和手机立即绑定

PHP匿名函数

标签:
PHP

<?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 

?>

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消