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取数组,数组里面取对象。报的错误不知道怎么调请帮帮我
最好能帮忙修改下。万谢 展开
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取数组,数组里面取对象。报的错误不知道怎么调请帮帮我
最好能帮忙修改下。万谢 展开
4个回答
展开全部
session里面不能保存对象的!
因为session的初始化必须在脚本最开始,但那个时候类还没有被声明,所以无法使用其实例
因为session的初始化必须在脚本最开始,但那个时候类还没有被声明,所以无法使用其实例
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
unserialize 接受的是序列化后的字符串...
P.S. PHP3之后,SESSION就能保存对象或数组了... 前提是能序列化
P.S. PHP3之后,SESSION就能保存对象或数组了... 前提是能序列化
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
错误提示已经写的很清楚了,unserialize函数的参数必须是字符串,你var_dump一下你的$val,看它是不是字符串,如果不是的话,就先serialize一下啊
参考资料: http://dao.daimaku.com
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
怎么这么繁琐。。。。。。。。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询