本页主题: 一个面向对象OOP的具体使用事例——购物车类 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

罗江游鱼

该用户目前不在线
级别: 论坛版主
精华: 0
发帖: 79
威望: 80 点
金钱: 790 RMB
贡献值: 0 点
注册时间:2007-11-08
最后登录:2008-04-08

一个面向对象OOP的具体使用事例——购物车类


通过此类的学习、相信你的oop又有提高……………………………………
==========================================

Copy code
<html>
<head>
<title>面向对象的具体使用——购物车类</title>
</head>
<body>
<?
class ShopCar                                        //类名购物车类
{
    var $carName;                                    //属性购物车名字
    var $debug;                                    //属性
    function ShopCar($carName)                        //创建购物车方法(构造函数)
    {
        $this->carName=$carName;                    //将购物车命名为指定名称
        if(!isset($_SESSION[$carName]))                //如果没有保存为session
        {
            $_SESSION[$carName]=array();            //把购物车名称保存到session
        }
    }
    function addCar($type,$name,$val)                    //向购物车中增加商品方法
    {
        if(array_key_exists($type,$_SESSION[$this->carName]))//如果类别已经存在
        {
            if(array_key_exists($name,$_SESSION[$this->carName][$type]))//如果商品存在
            {
            if($this->debug)echo "<p>已有{$name}商品,不必增加<p>";    //输出相应信息
            return false;                                        //返回假
            }
            else                                                //如果商品不存在
            {
                $_SESSION[$this->carName][$type][$name]=$val;        //在session中设定
            }
        }
        else                                                    //如果类别不存在
        {
            $_SESSION[$this->carName][$type]=array($name=>$val);    //在sessuib是设定
        }
        return true;                                            //返回真值
    }
    function editCar($type,$name,$var)                                //编辑购物车方法
    {
        if(!array_key_exists($name,$_SESSION[$this->carName][$type]))    //如果类别不存在
        {
            if($this->debug)echo "<p>没有{$name}商品,修改失败<p>";    //输出错误信息
            return false;                                        //返回假值
        }
        $_SESSION[$this->carName][$type][$name]=$var;                //在session中设定
        return true;
    }
    function delCarType($type)                                    //删除购物车类别
    {
        if(!array_key_exists($type,$_SESSION[$this->carName]))            //如果类别不存在
        {
            if($this->debug)echo "<p>没有{$type}类别,删除失败<p>";    //输出错误信息
            return false;                                        //返回假值
        }
        unset($_SESSION[$this->carName][$type]);                    //在session中删除
        return true;                                            //返回真值
    }
    function delCarPro($type,$name)                                //删除商品
    {
        if(!array_key_exists($name,$_SESSION[$this->carName][$type]))    //如果商品不存在
        {
            if($this->debug)echo "<p>没有{$name}商品,删除失败<p>";    //输出错误信息
            return false;                                        //返回假值
        }
        unset($_SESSION[$this->carName][$type][$name]);                //在session中删除
        return true;                                            //返回真值
    }
    function delCar()                                            //删除购物车
    {
        session_unregister($this->carName);                        //在session中注销
    }
    function getCarData()                                        //获取购物车数据
    {
        return $_SESSION[$this->carName];                        //通过session返回
    }
}
$my_car=new Shopcar("my_shopcar");                                //创建对象时一定要带参数,否则会有出错提示。
$my_car->addCar("水果","苹果",10);                                    //为购物车添加商品
$my_car->addCar("水果","香蕉",5);
$my_car->addCar("水果","梨",4);
$my_car->addCar("蔬菜","白菜",10);
$my_car->addCar("蔬菜","萝卜",3);
$my_car->addCar("蔬菜","菠菜",12);
$my_car->addCar("蔬菜","茄子",8);
$my_car->addCar("植物","小草",9);
$my_car->addCar("植物","草",9);
$temp=$my_car->getCarData();
print_r ($temp);
?>
</body>
</html>
顶端 Posted: 2007-12-18 19:21 | [楼 主]
开源嘛论坛 » php示例

Guest cache page, Update at 2008-12-02 07:40 桂ICP备07006725号
Powered by PHPWind v6.0 Certificate Code © 2003-07 PHPWind.com Corporation