php中session的对象名,一个用session传递对象的典型例子,和用_php

首先,你的session要好使,php4.1以上的版本别忘了把php.ini中的register_globle=Off设成register_globle=On,还有就是session.cookie_path = /,注意这行不可以乱改,有的版本PHP改了这个设置session就不好使,这是PHP的一个BUG.

好了,我假设你的session已经没问题了,我对下面的例子作个说明:b.php和a.php各定义了一个类,其中a.php中的类a稍微复杂,因为它是由b.php中的类doc组成的,这叫类的组成关系.我举的例子大概是最简单的类组成关系的例子啦.

c.php中产生了一个类a的对象叫test,并把它注册成session变量,c.php还显示了一个超文本的表单界面,供你输入一个字串.点击按钮后,对象test被传递到d.php,在下面的程序中,我具体介绍了传递对象时要注意的事项.这个程序是可以实际运行的,它是我学习用session传递对象的一个小总结,大家可以回去试试看,祝大家愉快.

//a.php

include("b.php");//包含b.php是因为doc类的定义在b.php中,而类a中的doc属性是doc类的对象

http://www.gaodaima.com/45489.html一个用session传递对象的典型例子,和用_php

/**

* Short description.

* 一个带有组成关系的类

* Detail description

* @author

* @version      1.0

* @copyright

* @access       public

*/

class a

{

/**

* Description 这是一个简单变量作为类a的属性

* @var

* @since     1.0

* @access    private

*/

var $docid;

/**

* Description 这是一个对象变量作为类a的属性

* @var

* @since     1.0

* @access    private

*/

var $doc;

/**

* Short description.

* 构造函数

* Detail description

* @param      none

* @global     none

* @since      1.0

* @access     private

* @return     void

* @update     date time

*/

function a()//类a的构造函数,它给自己的doc属性赋了初值

{

$adoc=new doc;

$this->doc=$adoc;

} // end func

/**

* Short description.

* 给docid赋值

* Detail description

* @param      none

* @global     none

* @since      1.0

* @access     private

* @return     void

* @update     date time

*/

function getdocid()//这个函数给自己的docid属性赋了值

{

$this->docid=$this->doc->id;

} // end func

/**

* Short description.

* 这个函数极简单,就不解释啦

* Detail description

* @param      none

* @global     none

* @since      1.0

* @access     private

* @return     void

* @update     date time

*/

function printdocid()//显示doc对象属性的id属性

{

echo "doc->id=".$this->doc->id."
";

} // end func

} // end class

?>

//b.php

/**

* Short description.

* 这是一个简单的类

* Detail description

* @author

* @version      1.0

* @copyright

* @access       public

*/

class doc

{

/**

* Description 简单变量作为类doc的属性

* @var

* @since     1.0

* @access    private

*/

var $id;

/**

* Short description.

* 这个函数显示一个录入界面

* Detail description

* @param      none

* @global     none

* @since      1.0

* @access     private

* @return     void

* @update     date time

*/

function scr()

{

screen();

} // end func

/**

* Short description.

* 这个函数把上面录入的值入库

* Detail description

* @param      none

* @global     none

* @since      1.0

* @access     private

* @return     void

* @update     date time

*/

function save($conn,$i)

{

$sql="INSERT INTO `test` (`id`, `name`) VALUES ('', '$i')";

$result=mysql_query($sql,$conn);

$this->id = mysql_insert_id($conn);

} // end func

} // end class

?>

//c.php

include("a.php");//要产生类a的对象须包含定义类a的文件(注意,a.php中不能有超文本,一个空格都不行,因为session_start前面有这样的要求;也不能包含带有超文本的文件,如果功能要求中必须包含超文本,请做成象下面screen.php那样的函数)

$test=new a();//产生一个类a的对象,取名test

session_start();

session_register('test');//把对象变量注册成session变量以便传递

include("screen.php");//这时再包含带有超文本的文件

$test->doc->scr();//调用界面显示

?>

//d.php

include("a.php");//要想用session接受前面传递的对象变量,必须在session_start()前包含定义该类的文件

session_start();

include("conn.php");//此文件中定义了下句用到的connect()函数的定义

$conn=connect();

echo "i=$i
";

$test->doc->save($conn,$i);//这个test对象是在c.php中建立,并通过session传递过来的,它是这段程序显示的目的所在, 请注意体会;test对象的属性和方法被session传递后,依然有效

$test->getdocid();

$test->printdocid();

?>

Untitled Document

return

//conn.php

/**

* Short description.

* 这就是一个普通的mysql连接函数,没什么特别的

* Detail description

* @param      none

* @global     none

* @since      1.0

* @access     private

* @return     void

* @update     date time

*/

function connect()

{$conn=mysql_connect("localhost","","");

mysql_select_db("test",$conn);

return $conn;

} // end func

?>

//screen.php

/**

* Short description.

* 把这些超文本被作为一个函数的原因,是为了在其他PHP文件中不包含超文本,达到PHP程序和超文本分离的目的

* Detail description

* @param      none

* @global     none

* @since      1.0

* @access     private

* @return     void

* @update     date time

*/

function screen()

{

?>

} // end func

?>

希望上面的例子能被加到FAQ,回头我就不用老是自己保存着这个程序啦 ^_^

欢迎大家阅读《一个用session传递对象的典型例子,和用_php》,跪求各位点评,若觉得好的话请收藏本文,by 搞代码

e7ce419cf2d6ad34d01da2ceb8829eed.png

微信 赏一包辣条吧~

023a57327877fb4402bcc76911ec18ea.png

支付宝 赏一听可乐吧~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值