站長資訊網
        最全最豐富的資訊網站

        php成員里面有幾種

        php成員里面有3種:1、成員屬性(類屬性),即定義在類中的變量,用于儲存類中的數據;2、成員方法,即定義在類中的函數,提供給對象解決事件;3、類常量,是在類中定義的常量,使用const關鍵字定義。

        php成員里面有幾種

        本教程操作環境:windows7系統、PHP8版、DELL G3電腦

        一、概念

        類成員指定義在類中的一系列數據,他們是直接依賴于類的一級成員。類成員包括:成員屬性、成員方法、類常量。

        • 成員屬性(類屬性):即定義在類中的變量,用于儲存類中的數據

        • 成員方法:即定義在類中的函數,提供給對象解決事件。

        • 類常量:在類中定義的常量,使用const關鍵字定義。

        屬性和方法在訪問時需要使用訪問限定修飾符修飾。

        語法:

        class 類名{           public $成員屬性名[=成員屬性值]; //成員屬性可以只定義而不賦值,放在之后賦值。          [public] function 成員方法名(){                    ...                   }          const 常量名=值;    }
        登錄后復制

        類的成員屬性可以只定義而不賦值,在之后的邏輯操作中根據情況賦值,但是必須有訪問限定修飾符修飾,成員方法的訪問限定修飾符可以省略,省略后默認就是public,關于限定修飾符會在后面詳解。

        二、實現步驟

        實現類成員的步驟同樣需要進行業務邏輯分析,大致的步驟是:

        • 聲明類結構

        • 分析類是否需要儲存數據來確定是否定義成員屬性或定義多少成員屬性

        • 分析類是否要進行某些操作來確定是否要定義成員方法。

        • 分析是否需要定義常量

        • 對象實例化

        • 通過對象調用類成員

        例:分析新聞投稿的類的簡單示例

        實現新聞投稿,首先要聲明類結構:

        class devote{ }
        登錄后復制

        然后分析是否需要存儲數據,很明顯,投稿新聞肯定要儲存數據,首先要儲存新聞標題、新聞內容,然后投稿人的信息,包括昵稱,郵箱,手機號等等。

        這些數據我們通過成員屬性儲存:

        class devote{         public $nickname="投稿人";         public $title="新聞標題";         public $content="投稿內容";         public $email="郵箱";         public $phone="手機號";  }
        登錄后復制

        然后分析是否需要執行操作,投稿新聞首先要對新聞內容進行過濾,屏蔽不當詞語,然后提交到數據庫中保存草稿,等待審核。

        class devote{         public $nickname="投稿人";         public $content="投稿內容";         public $email="郵箱";         public $phone="手機號";         function clear($content){                  //過濾新聞內容          }         function input(){          //提交到數據庫          }  }
        登錄后復制

        需不需要類常量呢?暫且是不需要的,那接下來就是實例化類,然后通過對象調用成員實現功能了。

        $devote=new devote(); //實例化對象  $devote->nickname="小杜";  $devote->title="一件大事";  $devote->content="我手機沒電了";  $devote->email="2811051813@qq.com";  $devote->phone="就不告訴你";  $devote->clear($devote->content);  $devote->input();  //通過調用成員實現業務
        登錄后復制

        關于類成員的調用,我們使用的是->鏈接,如上面的例子所示,調用類屬性的語法是:

        $對象->屬性名;

        請注意:調用屬性名不需要加$符,在調用時,他們是一體的。但是在定義屬性時,必須有$符表示定義變量。

        調用屬性會得到當前屬性的值,對其賦值就會改變他的值,如上,如果是直接調用title屬性,得到的值是“新聞標題”,如果再對其賦值,此時title的值就是一件大事,如果對屬性重新賦值了,在接下來使用該屬性獲得的值都是后面賦值的內容,因為類屬性實際上也就是一個變量。

        重新賦值等同于:

        $devote->title="一件大事";  //等同于:  public $title="一件大事";
        登錄后復制

        調用類方法:

        $對象->方法名(參數)

        調用類常量是靜態調用,會在后面詳解。

        可以通過打印對象來直觀的展示上面的內容:

        class devote{         public $nickname="投稿人";          public $content="投稿內容";          public $email="郵箱";          public $phone="手機號";          function clear($content){          //過濾新聞內容          }          function input(){          //提交到數據庫          }  }    $devote=new devote();  var_dump($devote);  //object(devote)#1 (4) { ["nickname"]=> string(9) "投稿人" ["content"]=> string(12) "投稿內容" ["email"]=> string(6) "郵箱" ["phone"]=> string(9) "手機號" }
        登錄后復制

        自己測試一下,可以看到成員屬性的值是默認的,如果通過對象給成員屬性重新賦值,然后再打印對象:

        $devote->nickname="小杜";  $devote->title="一件大事";  $devote->content="我手機沒電了";  $devote->email="2811051813@qq.com";  $devote->phone="就不告訴你";  $devote->clear($devote->content);  $devote->input();  var_dump($devote);
        登錄后復制

        可以發現類屬性的值被改變了。

        三、成員操作

        上面的例子已經涉及到了成員操作,即訪問成員屬性和修改成員屬性,成元屬性基本的操作是增刪改查,查和改上面已經演示過,請看增加屬性的操作:

        增加成員屬性直接在對象后調用一個不存在的成員屬性并賦值即可:

        $devote->id=1;  /*  打印結果: object(devote)#1 (6) { ["nickname"]=> string(6) "小杜" ["content"]=> string(18) "我手機沒電了" ["email"]=> string(17) "2811051813@qq.com" ["phone"]=> string(15) "就不告訴你" ["title"]=> string(12) "一件大事" ["id"]=> int(1) }  */
        登錄后復制

        執行上面的操作后會在類中新增一個屬性id,并賦值為1,這個值在之后也可以通過對象直接訪問:

        echo $devote->id; //輸出1
        登錄后復制

        直接調用一個不存在的屬性也不會報錯,但是他的值是NULL。

        var_dump($devote->ids); //NULL
        登錄后復制

        刪除類屬性使用unset方法:

        unset($devote->id);  var_dump($devote->id);  //NULL
        登錄后復制

        通過對象操作的類屬性只在當前對象下生效:

        $devote->age=18;  $dv=new devote();  var_dump($dv);  //object(devote)#2 (4) { ["nickname"]=> string(9) "投稿人" ["content"]=> string(12) "投稿內容" ["email"]=> string(6) "郵箱" ["phone"]=> string(9) "手機號" }
        登錄后復制

        方法操作只有調用一種操作,即只可以通過對象調用類的成員方法:

        $devote->input();
        登錄后復制

        注意:類成員在類中可以無限定義,但是類中只能包含類屬性、類方法、類常量,其他的語法都不可以寫在類中。

        class Test{         echo 1234;          var_dump("錯誤");          if($a==1){ echo "True"; }  }  //syntax error, unexpected 'echo' (T_ECHO), expecting function (T_FUNCTION) or const (T_CONST)
        登錄后復制

        推薦學習:《PHP視頻教程》

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 97久久精品无码一区二区天美| 国产精品久久亚洲不卡动漫| 无码国内精品人妻少妇蜜桃视频| 日韩精品国产自在久久现线拍| 无码精品黑人一区二区三区| 国产午夜亚洲精品理论片不卡 | 免费人欧美日韩在线精品| 国产精品对白交换视频| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 精品久久久久久无码专区| 欧美精品VIDEOSEX极品| 国产成人精品久久亚洲| 精品久久香蕉国产线看观看亚洲| 久久久无码人妻精品无码| 亚洲国产精品日韩| 精品亚洲欧美无人区乱码 | 亚洲精品国产V片在线观看| 好湿好大硬得深一点动态图91精品福利一区二区 | 久草热久草热线频97精品| 国产高清在线精品一区二区 | 亚洲精品天天影视综合网| 国产精品视频一区二区三区经| 国产精品兄妹在线观看麻豆| 色偷偷88888欧美精品久久久 | 亚洲AV无码成人精品区在线观看| 午夜精品一区二区三区在线视| 久久精品亚洲福利| 久久国产乱子伦精品免费午夜| 国产三级精品三级| 精品无码国产污污污免费网站国产| 国产欧美日本亚洲精品一5| 国产精品无码专区在线观看| 国产在线精品一区二区夜色| 国产成人综合精品一区| 国产精品亚洲产品一区二区三区| 国产精品无码专区在线观看| 精品一区二区三区色花堂| 蜜桃麻豆www久久国产精品 | 久久精品国产亚洲Aⅴ香蕉| 欧美成人精品第一区二区三区| 欧美精品一区二区三区免费|