高手请进,在register_globals off后,无法传递类变量

topeak 2004-12-10 09:09:08
但是可以传递简单的变量,为什么?
我用的是$_SESSION[]来传递的
例如$class=new Class;
$_SESSION["class"]=$class;
在同一个页面内,跳转到另外一个页面后,用$_SESSION["class"]无法获得该变量,
但是传递$_SESSION["u"]="aasdfasdf";就可以,不知道为什么,万分着急啊
当register_globals为on的时候就能取到$_SESSION["class"]变量,有高手知道吗,谢谢
...全文
110 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
topeak 2004-12-10
Basket类

<?
class Basket {
var $basket_count;
var $basket_item_id;
var $basket_item_name;
var $basket_item_quantity;
var $basket_item_data;
var $basket_item_price;
var $basket_item_tax;
var $basket_item_color;
var $basket_item_size;

function Basket() {
$this->basket_count=0;
}
function Add_Item($ID,$name,$quantity=1,$price=0,$data='',$tax,$color,$size,$weight) {

$this->basket_item_id[$this->basket_count]=$ID;
$this->basket_item_name[$this->basket_count]=$name;
$this->basket_item_quantity[$this->basket_count]=$quantity;
$this->basket_item_data[$this->basket_count]=$data;
$this->basket_item_price[$this->basket_count]=$price;
$this->basket_item_tax[$this->basket_count]=$tax;
$this->basket_item_color[$this->basket_count]=$color;
$this->basket_item_size[$this->basket_count]=$size;
$this->basket_item_weight[$this->basket_count]=$weight;

$this->basket_count++;

return ($this->basket_count-1);
}
function Del_Item($pos) {
$this->basket_item_id[$pos]='';
}
function Get_Item_ID($pos) {
return $this->basket_item_id[$pos];
}
function Get_Item_Name($pos) {
return $this->basket_item_name[$pos];
}
function Get_Item_Price($pos) {
return $this->basket_item_price[$pos];
}
function Get_Item_Quantity($pos) {
return $this->basket_item_quantity[$pos];
}
function Get_Item_Data($pos) {
return $this->basket_item_data[$pos];
}
function Get_Item_Tax($pos) {
return $this->basket_item_tax[$pos];
}
function Get_Item_Color($pos) {
return $this->basket_item_color[$pos];
}
function Get_Item_Size($pos) {
return $this->basket_item_size[$pos];
}
function Get_Item_Weight($pos) {
return $this->basket_item_weight[$pos];
}
function Set_Item_Quantity($pos,$quantity) {
$this->basket_item_quantity[$pos]=$quantity;
}
function Set_Item_Data($pos,$data) {
$this->basket_item_data[$pos]=$data;
}
function Enum_Items($start=false) {
static $current;
if ($current>=$this->basket_count) return -1;
if (!$start) {
$current++;
} else {
$current=0;
}
while (($this->basket_item_id[$current]=='') && ($current<$this->basket_count)) {
$current++;
}
return ($current<$this->basket_count) ? $current : -1;
}
function Empty_Basket() {
$this->basket_count=0;
}
function Get_Basket_Count() {
$num=0;
for ($i=0;$i<$this->basket_count;$i++) {
if ($this->basket_item_id[$i]!='') $num++;
}
return $num;
}
}
?>
回复
topeak 2004-12-10
因为是个购物篮对象,所以才放在session中的
回复
topeak 2004-12-10
好的,我先在看看,先谢谢各位了
回复
ashchen 2004-12-10
一般不用session传递 对象 变量
回复
alei 2004-12-10
此global非ASP之global
回复
uGain 2004-12-10
在另一个页面也要引用类文件或重新声明类。
回复
mynamesucks 2004-12-10
既然$_SESSION["u"]="aasdfasdf"可以得到而$_SESSION["class"]=$class得不到
那说明是$class没得到啊
而$class = new Class;
那是Class里的问题了
你把CLass里return的那个值声明为global试试
回复
-神仙- 2004-12-10
在session中存取对象是自动序列化的

回复
teaps 2004-12-10
先把类实例序列化再保存吧
回复
相关推荐
发帖
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
帖子事件
创建了帖子
2004-12-10 09:09
社区公告
暂无公告