PHP对象存到数组里,数组在存到SESSION里面的问题

<?phpclassCartItem{public$name;public$quantity;public$price;public$id;public$desc;pub... <?php
class CartItem {
public $name;
public $quantity;
public $price;
public $id;
public $desc;
public function getName() {
return $this->name;
}
public function setName($name) {
$this->name = $name;
}
public function getQuantity() {
return $this->name;
}
public function setQuantity($quantity) {
$this->quantity = $quantity;
}
public function getPrice() {
return $this->price;
}
public function setPrice($price) {
$this->price = $price;
}
public function getId() {
return $this->id;
}
public function setId($id) {
$this->id = $id;
}

public function getDesc() {
return $this->desc;
}
public function setDesc($desc) {
$this->desc = $desc;
}
}
?>

下面是购物类
<?php
session_start();
include ("CartItem.class.php");
$cart = array ();
global $cart;
$cart = $_SESSION['gouwu'];
$id = $_GET['id'];
$name = $_GET['name'];
$price = $_GET['price'];
$pin = new CartItem();
if ($cart == null) {
global $pin;
$pin->setId($id);
$pin->setName($name);
$pin->setPrice($price);
$str = new CartItem();
$str=serialize($pin);
$cart[] = $str;
$_SESSION['gouwu'] = $cart;
}
?>
<table>
<tr>
<td>商品</td><td>数量</td><td>价钱</td>
<?php
$obj = new CartItem();
global $obj;
//echo count($cart);
//for ($i = 0; $i < count($cart); $i++) {
// $obj=(object)$cart[$i];
foreach ($cart as $val) {
$s=unserialize($val);
?>
<tr><td><?=$s->getId() ?></td></tr>
<?php

}
?>
</tr>

错误Warning: unserialize() expects parameter 1 to be string, object given in D:\wamp\www\gouwuche\getshoppingcart.php on line 38 Fatal error: Call to a member function getId() on a non-object in D:\wamp\www\gouwuche\getshoppingcart.php on line 40

我把对象存到数组里,数组在存到SESSION里面,在从SESSION取数组,数组里面取对象。报的错误不知道怎么调请帮帮我
最好能帮忙修改下。万谢
展开
 我来答
百度网友2ea741a53
2010-06-12
知道答主
回答量:12
采纳率:0%
帮助的人:4.6万
展开全部
session里面不能保存对象的!
因为session的初始化必须在脚本最开始,但那个时候类还没有被声明,所以无法使用其实例
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
iamXiaMi
2010-06-11 · TA获得超过1711个赞
知道大有可为答主
回答量:2734
采纳率:0%
帮助的人:2237万
展开全部
unserialize 接受的是序列化后的字符串...

P.S. PHP3之后,SESSION就能保存对象或数组了... 前提是能序列化
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友cda961efe
2010-06-11 · 超过30用户采纳过TA的回答
知道答主
回答量:78
采纳率:0%
帮助的人:80.6万
展开全部
错误提示已经写的很清楚了,unserialize函数的参数必须是字符串,你var_dump一下你的$val,看它是不是字符串,如果不是的话,就先serialize一下啊

参考资料: http://dao.daimaku.com

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
永恒Lyx
2010-06-11 · TA获得超过2467个赞
知道小有建树答主
回答量:756
采纳率:11%
帮助的人:356万
展开全部
怎么这么繁琐。。。。。。。。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式