一个用session传递对象的典型例子,和用面向对象编程的朋友共同分享

首先,你的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传递对象的一个小总结,大家可以回去试试看,祝大家愉快.

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 ?> id = mysql_insert_id($conn); } // end func } // end class ?> doc->scr();//调用界面显示 ?> "; $test->doc->save($conn,$i);//这个test对象是在c.php中建立,并通过session传递过来的,它是这段程序显示的目的所在, 请注意体会;test对象的属性和方法被session传递后,依然有效 $test->getdocid(); $test->printdocid(); ?> ```Untitled Documentreturn``` <? //conn.php /** * Short description. * 这就是一个普通的mysql连接函数,没什么特别的 * Detail description * @param none * @global none
Published At
Categories with Web编程
Tagged with
comments powered by Disqus