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