关于PHP中对象的问题,HELP!!!!高分求救

watergenie 2003-06-18 09:50:37
各位大哥谁能告诉我怎样跨页面保存对象??

我需要离开建立对象的页面进行相关操作处理以后返回到原页面对象依然存在
怎么弄?????
...全文
41 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
upchina 2003-06-19
  • 打赏
  • 举报
回复
singleton呢?
programdolt 2003-06-19
  • 打赏
  • 举报
回复
还是用session吧,比较方便实用。
if(!session_is_registered("arrayname")) { // 如果不存在则新建
$arrayname=array();
session_register("arrayname");
$arrayname[0]="abc";
$arrayname[1]="lmf";
……
}
在下一个页面用session_start();
就可以应用$arrayname数组了,很方便的。^_^
xuzuning 2003-06-19
  • 打赏
  • 举报
回复
纠正一下我的说法。你可以这样做:
class.php 类定义文件
<?php
class A {
var $v;
function A($v) {
$this->v = $v;
}
function show() {
echo "$this->v ok";
}
}
?>

file1.php
<?php
include "class.php";
session_start();

$p = new A(123);
$_SESSION['p'] = $p;

header("location: file2.php");
?>

file2.php
<?
include "class.php";
session_start();
$p = $_SESSION['p'];
$p->show();
?>

至于ABabyStudio(ABabyStudio) 说的__sleep(),__wakeup()如何使用,还请他明示。

ABabyStudio 2003-06-19
  • 打赏
  • 举报
回复
补充:
对象保存在session中,会自动被序列化serialize成一个字符串保存,再次被调用时自动unserialize(),所以同样存在上面提到的__sleep()保存或清除不必要的数据和__wakeup()恢复丢失的数据的问题。
ABabyStudio 2003-06-19
  • 打赏
  • 举报
回复
可以将对象保存在session中
var $myClass=new MyClass();
session_register("myClass");
这样就把myClass对象保存在了会话(session)中。不过这样一个代价是,你必须在每一个php脚本中包含对象的声明文件(比如MyClass.php),因为session是对每个php脚本可见的。

可以这样优化:
将对象序列化(serialize)后的字符串保存在session中,在另外一个需要此对象的页面中再反向(unserialize)生成这个对象,当然这个页面要包含MyClass.php。
值得注意的是,对象中的部分信息比如对于mysql或其他数据源、文件的连接句柄会丢失,需要在对象中声明两个函数,__sleep()用于序列化时保存连接信息,__wakeup用于反向时重建连接。
watergenie 2003-06-19
  • 打赏
  • 举报
回复


没办法,只能通过对象来管理,不然不晓得怎么办:(
我现在要管理一个对象数组
是不是只要把数组名注册为session然后直接使用用这个数组名,就能够让数组中所有的对象都保存在session里面了呢??
cclq 2003-06-19
  • 打赏
  • 举报
回复
关注
xuzuning 2003-06-19
  • 打赏
  • 举报
回复
对象只生存在创建的页面。
所以每次使用都需创建,但你可以保存其数据部分,在创建后装入。
MeE 2003-06-19
  • 打赏
  • 举报
回复
$a=mysql_fatch_object($rs);
$_SESSION['b']=$a;
echo $_SESSION['b']->name;
xiaotao5 2003-06-18
  • 打赏
  • 举报
回复
我想 $p=new ... ;
只要保存这个$p就可以了,session,cookie,隐藏表单方式都可以的,
我试过在普通函数中用global $p;后,可以正常访问类中的方法。
xiaotao5 2003-06-18
  • 打赏
  • 举报
回复
我不信,我正全面转向面向对象编程。
DFlyingchen 2003-06-18
  • 打赏
  • 举报
回复
session
其实PHP的对象功能很弱的,不如干脆面向过程,不要用对象了
bonniewater 2003-06-18
  • 打赏
  • 举报
回复
session能行

21,882

社区成员

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

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