日期:2013-12-13  浏览次数:20440 次

首先,你的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类的对象
/**
* 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
    &nb