我是靠谱客的博主 等待星月,最近开发中收集的这篇文章主要介绍PHP全场折扣类设计思路,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近逛论坛发现有小伙伴提问到此题目在这里贴一下原题:

  • 若用户在一个全场八折的网站购买两斤香蕉丶一斤苹果丶三斤橘子,它们的价格分别为:7.99/斤丶6.89/斤丶3.99/斤,那么如何使用 PHP 程序计算此用户实际需支付金额呢?
  1. 如果题中的商城是购物类型网站时可以考虑如下封装写法思路:
<?php
//定义商城类
class shop {
//商品对象
private $goods = [];
//单例对象
private static $nav = null;
/*
* 单列模式调用此类
*/
public static function nav() {
if(self::$nav == null) {
self::$nav = new self();
}
return self::$nav;
}
/*
* 构造函数
*/
public function __construct() {
//设定全场折扣
$this -> discount = 8;
}
/*
* 商品添加
* @param $id 商品id
* @param $name 商品名称
* @param $price 商品价格
* @param $num 商品数量
*/
public function add($id, $name, $price, $num = 1) {
if(!isset($this -> goods[$id]))
$this -> goods[$id] = [
'name' => $name,
'price' => $price,
'num' => $num
];
else
$this -> goods[$id] += $num;
return $this -> goods;
}
/*
* 计算总价
*/
public function total_price() {
foreach($this -> goods as $v) $money += ($v['price'] * $v['num']) * ($this -> discount / 10);
return $money;
}
}
$obj = shop::nav();
$obj -> add(1, '香蕉', 7.99, 2);
$obj -> add(2, '苹果', 6.89);
$obj -> add(3, '橘子', 3.99, 3);
echo '总价:' . $obj -> total_price();

这里只是简单的以题目为例做下思路,可以根据自身需要完善其他功能,例如增加减少物品数量,某ID的商品不参与折扣等等。

  1. 如果题意只是希望简单的计算那么可以直接这样:
echo '总价:' . ((7.99 * 2) + 6.89 + (3.99 * 3)) * 0.8;

最后

以上就是等待星月为你收集整理的PHP全场折扣类设计思路的全部内容,希望文章能够帮你解决PHP全场折扣类设计思路所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部