• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

        一個用session傳遞對象的典型例子,與用面向對象編程的朋友共同分享(轉自CSDN)

        一個用session傳遞對象的典型例子,與用面向對象編程的朋友共同分享(轉自CSDN)

        更新時間:2021-11-16 文章作者:未知 信息來源:網絡 閱讀次數:

        首先,你的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 
        * @version1.0
        * @copyright
        * @access public
        */
        class a
        {

         /**
         * Description 這是一個簡單變量作為類a的屬性
         * @var 
         * @since 1.0
         * @accessprivate
         */
        var $docid;

        /**
         * Description 這是一個對象變量作為類a的屬性
         * @var 
         * @since 1.0
         * @accessprivate
         */
        var $doc;


        /**
         * Short description.
         * 構造函數
         * Detail description
         * @paramnone
         * @global none
         * @since1.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
         * @paramnone
         * @global none
         * @since1.0
         * @access private
         * @return void
         * @update date time
        */
        function getdocid()//這個函數給自己的docid屬性賦了值
        {
        $this->docid=$this->doc->id;
        } // end func

        /**
         * Short description.
         * 這個函數極簡單,就不解釋啦
         * Detail description
         * @paramnone
         * @global none
         * @since1.0
         * @access private
         * @return void
         * @update date time
        */
        function printdocid()//顯示doc對象屬性的id屬性
        {
         echo "doc->id=".$this->doc->id."<br>";

        } // end func

        } // end class
        ?>
        <?
        //b.php
        /**
        * Short description.
        * 這是一個簡單的類
        * Detail description
        * @author 
        * @version1.0
        * @copyright
        * @access public
        */
        class doc
        {

        /**
         * Description 簡單變量作為類doc的屬性
         * @var 
         * @since 1.0
         * @accessprivate
         */
        var $id;



        /**
         * Short description.
         * 這個函數顯示一個錄入界面
         * Detail description
         * @paramnone
         * @global none
         * @since1.0
         * @access private
         * @return void
         * @update date time
        */
        function scr()
        {
        screen();
        } // end func
        /**
         * Short description.
         * 這個函數把上面錄入的值入庫
         * Detail description
         * @paramnone
         * @global none
         * @since1.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<br>";
        $test->doc->save($conn,$i);//這個test對象是在c.php中建立,并通過session傳遞過來的,它是這段程序顯示的目的所在, 請注意體會;test對象的屬性和方法被session傳遞后,依然有效
        $test->getdocid();
        $test->printdocid();
        ?>
        <html>
        <head>
        <title>Untitled Document</title>
        <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
        </head>

        <body bgcolor="#FFFFFF" text="#000000">
        <a href="c.php">return</a>
        </body>
        </html><!--到此為止都是d.php文件中的-->
        <?
        //conn.php

        /**
        * Short description.
        * 這就是一個普通的mysql連接函數,沒什么特別的
        * Detail description
        * @paramnone
        * @global none
        * @since1.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
        * @paramnone
        * @global none
        * @since1.0
        * @access private
        * @return void
        * @update date time
        */
        function screen()
        {
        ?>
        <FORM METHOD=POST ACTION="d.php">
        <INPUT TYPE="text" NAME="i">
        <INPUT TYPE="submit">
        </FORM>
        <?
        } // end func
        ?>
        希望上面的例子能被加到FAQ,回頭我就不用老是自己保存著這個程序啦 ^_^

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 亚洲男人天堂2022| 国产亚洲精久久久久久无码| 国产精品久久久久久久久免费| 最近中文字幕大全中文字幕免费| 四虎影视大全免费入口| 亚洲国产av无码精品| 亚洲综合色一区二区三区小说| 美女被免费网站视频在线| 国产成人AV片无码免费| 在线jlzzjlzz免费播放| 亚洲综合国产成人丁香五月激情 | 久久精品九九亚洲精品天堂| 亚洲免费视频播放| 中文字幕免费在线视频| 97人伦色伦成人免费视频| 久久精品国产亚洲沈樵| 午夜网站在线观看免费完整高清观看 | 国产成+人+综合+亚洲专| 黄桃AV无码免费一区二区三区 | 一区二区三区免费在线视频 | 日韩免费观看的一级毛片| 亚洲av无码乱码国产精品| 四虎精品成人免费视频| 亚洲午夜久久久久久久久电影网| 亚洲综合在线一区二区三区| 国产成人免费网站在线观看| 亚洲精品午夜国产va久久| 日本一道在线日本一道高清不卡免费| 无人视频在线观看免费播放影院| 免费看a级黄色片| 亚洲成AV人片高潮喷水| 成人特黄a级毛片免费视频| 成a人片亚洲日本久久| 女人被男人桶得好爽免费视频| 日韩精品视频在线观看免费| 亚洲熟妇丰满多毛XXXX| 手机看黄av免费网址| 亚洲一区二区三区电影| 无码人妻一区二区三区免费看 | AV在线播放日韩亚洲欧| 一级毛片免费在线|