请帮我看一下这段代码~~~~~!!!!!!!急~

hntd 2003-10-23 12:05:01
以下是一个购物车类的代码,为什么我在cart.php页中用echo $sname; 不会显示呢?是不是这个类的代码有误??
<?
class TCart{
var $SortCount;
var $TotalCost;
var $id;
var $name;
var $price;
var $number;
var $cost;
function TCart()
{
$this->$SortCount=0;
session_start(); //初始化一个session
session_register('sid');
session_register('sname');
session_register('sprice');
session_register('snumber');
//session_register(scost);
$this->update();
$this->calculete();
}
//***私有,根据session的值更新类中相应数据****//
function update()
{
global $sid,$sname,$spriec,$snumber;
if(!isset($sid) or !isset($sname) or !isset($sprice) or !isset($snumber)) return;
$this->id=$sid;
$this->name=$sname;
$this->price=$sprice;
$this->number=$snumber;
$this->SortCount=count($sid);
}
//**根据新的数据计算每类产品的价格和所有产品的总价**//
function calculete()
{
for($i=0;$i<$this->SortCount;$i++)
{
$this->cost[$i]=$this->price[$i]*$this->number[$i];
$this->TotalCost+=$this->cost[$i];
}
}
//*******以下为接口函数
//**加入一个产品,有则加number,没有则添加一个新产品
//**首先都是改session值,再调用update() and calculete()来更新成员变量
function AddOne($id,$name,$price)
{
global $sid,$sprice,$sname,$snumber;
$j=count($sid);
for($i=0;$i<$j;$i++)
{
//**先查找是否已经加入此产品
if($sid[$i]==$id)
{
$snumber[$i]++;
break;
}
}
if($i>=$j)
{
//**没有则加一个新商品种类
$sid[]=$id;
$sname[]=$name;
$sprice[]=$price;
$snumber[]=1;
}
//更新类的成员
$this->update();
$this->calculete();
}
//**删除一件商品
function RemoveOne($id)
{
global $sid,$sname,$sprice,$snumber;
$k=count($sid);
for($i=0;$i<$k;$i++)
{
if($sid[$i]==$id)
$snumber--;
break;
}
$this->update();
$this->calculete();
}
//**改变商品数量
function ModifyNumber($i,$nnumber)
{
global $snumber;
$snumber[$i]=$nnumber;
$this->update();
$this->calculete();
}
//**清空一种商品
function ClearOne($i)
{
global $snumber;
$snumber[$i]=0;
$this->update();
$this->calculete();
}
//**清空所有商品
function Clear()
{
global $sid,$sname,$sprice,$snumber;
$k=count($sid);
for($i=0;$i<$k;$i++)
{
$snumber[$i]=0;
}
$this->update();
$this->calculete();
session_unregister(sid);
session_unregister(sname);
session_unregister(sprice);
session_unregister(snumber);
$this->SortCount=0;
}
//**某件商品是否已经在蓝内,参数为此商品ID
function InCart($id)
{
for($i=0;$i<$this->SortCount;$i++)
{
if($this->id[$i]==$id) return true;
}
return false;
}
//**某件商品在蓝中的位置
function IndexOf()
{
for($i=0;$i<$this->SortCount;$i++)
{
if($this->id[$i]==$id) return $i;
}
return 0;
}
//取出一件商品的信息,主要的工作函数
//返回一个关联数组,下标为id,name,price,number,cost
function GetOne($i)
{
$result[id]=$this->id[$i];
$result[name]=$this->name[$i];
$result[price]=$this->price[$i];
$result[number]=$this->number[$i];
$result[cost]=$this->cost[$i];
return $result;
}
//取得商品总数
function GetSortCount()
{
return $this->SortCount;
}
//取得商品总价格
function GetTotalCost()
{
return $this->TotalCost;
}
//end class;
}
echo
?>
...全文
50 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hntd 2003-10-23
  • 打赏
  • 举报
回复
php4.31 register_globals的设置也正常啊
xuzuning 2003-10-23
  • 打赏
  • 举报
回复
请告知你的php版本和register_globals设置情况

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧