通过此类的学习、相信你的oop又有提高……………………………………
==========================================
<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>