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

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號
日韩一级在线播放| 国内精品久久久久影视| 国精品无码一区二区三区左线| 日韩在线视频一区二区三区| 国产成人福利精品视频| 99视频在线精品免费观看6| 亚洲精品456人成在线| 无码人妻精品一区二区| 国产精品99精品无码视亚| 亚洲中文字幕久久精品无码喷水 | 午夜精品一区二区三区在线视 | 亚洲伊人久久精品影院| 精品国产亚洲男女在线线电影| 人妻少妇精品久久| 日韩免费电影在线观看| 日韩色视频一区二区三区亚洲| 无码精品日韩中文字幕| 日韩专区无码人妻| 日韩成人av在线| 国产日韩在线播放观看| 国产亚洲日韩一区二区三区| 四虎AV永久在线精品免费观看| 精品久久伦理中文字幕| 日韩精品一区二区三区老鸦窝| 在线观看一区二区精品视频| 7777精品伊人久久久大香线蕉| 无码精品不卡一区二区三区| 2020年国产精品| 国产精品嫩草影院在线| 99j久久精品久久久久久| 国产精品国产三级国产普通话| 国产在视频线精品视频二代| 国产精品偷伦视频观看免费 | 嫩草影院久久国产精品| 久久精品一区二区国产| 久久精品视频免费播放| 四虎国产精品成人| 亚洲国产精品自在拍在线播放| 午夜亚洲av永久无码精品| 亚洲国产91精品无码专区| 国产精品免费在线播放|