溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

php成員里有哪些屬性

發(fā)布時(shí)間:2023-02-27 10:14:31 來(lái)源:億速云 閱讀:95 作者:iii 欄目:編程語(yǔ)言

這篇文章主要講解了“php成員里有哪些屬性”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“php成員里有哪些屬性”吧!

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

一、概念

類(lèi)成員指定義在類(lèi)中的一系列數(shù)據(jù),他們是直接依賴(lài)于類(lèi)的一級(jí)成員。類(lèi)成員包括:成員屬性、成員方法、類(lèi)常量。

  • 成員屬性(類(lèi)屬性):即定義在類(lèi)中的變量,用于儲(chǔ)存類(lèi)中的數(shù)據(jù)

  • 成員方法:即定義在類(lèi)中的函數(shù),提供給對(duì)象解決事件。

  • 類(lèi)常量:在類(lèi)中定義的常量,使用const關(guān)鍵字定義。

屬性和方法在訪(fǎng)問(wèn)時(shí)需要使用訪(fǎng)問(wèn)限定修飾符修飾。

語(yǔ)法:

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

類(lèi)的成員屬性可以只定義而不賦值,在之后的邏輯操作中根據(jù)情況賦值,但是必須有訪(fǎng)問(wèn)限定修飾符修飾,成員方法的訪(fǎng)問(wèn)限定修飾符可以省略,省略后默認(rèn)就是public,關(guān)于限定修飾符會(huì)在后面詳解。

二、實(shí)現(xiàn)步驟

實(shí)現(xiàn)類(lèi)成員的步驟同樣需要進(jìn)行業(yè)務(wù)邏輯分析,大致的步驟是:

  • 聲明類(lèi)結(jié)構(gòu)

  • 分析類(lèi)是否需要儲(chǔ)存數(shù)據(jù)來(lái)確定是否定義成員屬性或定義多少成員屬性

  • 分析類(lèi)是否要進(jìn)行某些操作來(lái)確定是否要定義成員方法。

  • 分析是否需要定義常量

  • 對(duì)象實(shí)例化

  • 通過(guò)對(duì)象調(diào)用類(lèi)成員

例:分析新聞投稿的類(lèi)的簡(jiǎn)單示例

實(shí)現(xiàn)新聞投稿,首先要聲明類(lèi)結(jié)構(gòu):

class devote{ }

然后分析是否需要存儲(chǔ)數(shù)據(jù),很明顯,投稿新聞肯定要儲(chǔ)存數(shù)據(jù),首先要儲(chǔ)存新聞標(biāo)題、新聞內(nèi)容,然后投稿人的信息,包括昵稱(chēng),郵箱,手機(jī)號(hào)等等。

這些數(shù)據(jù)我們通過(guò)成員屬性?xún)?chǔ)存:

class devote{
        public $nickname="投稿人";
        public $title="新聞標(biāo)題";
        public $content="投稿內(nèi)容";
        public $email="郵箱";
        public $phone="手機(jī)號(hào)"; 
}

然后分析是否需要執(zhí)行操作,投稿新聞首先要對(duì)新聞內(nèi)容進(jìn)行過(guò)濾,屏蔽不當(dāng)詞語(yǔ),然后提交到數(shù)據(jù)庫(kù)中保存草稿,等待審核。

class devote{
        public $nickname="投稿人";
        public $content="投稿內(nèi)容";
        public $email="郵箱";
        public $phone="手機(jī)號(hào)";
        function clear($content){
                 //過(guò)濾新聞內(nèi)容 
        }
        function input(){
         //提交到數(shù)據(jù)庫(kù) 
        } 
}

需不需要類(lèi)常量呢?暫且是不需要的,那接下來(lái)就是實(shí)例化類(lèi),然后通過(guò)對(duì)象調(diào)用成員實(shí)現(xiàn)功能了。

$devote=new devote();
//實(shí)例化對(duì)象 
$devote->nickname="小杜"; 
$devote->title="一件大事"; 
$devote->content="我手機(jī)沒(méi)電了"; 
$devote->email="2811051813@qq.com"; 
$devote->phone="就不告訴你"; 
$devote->clear($devote->content); 
$devote->input(); 
//通過(guò)調(diào)用成員實(shí)現(xiàn)業(yè)務(wù)

關(guān)于類(lèi)成員的調(diào)用,我們使用的是->鏈接,如上面的例子所示,調(diào)用類(lèi)屬性的語(yǔ)法是:

$對(duì)象->屬性名;

請(qǐng)注意:調(diào)用屬性名不需要加$符,在調(diào)用時(shí),他們是一體的。但是在定義屬性時(shí),必須有$符表示定義變量。

調(diào)用屬性會(huì)得到當(dāng)前屬性的值,對(duì)其賦值就會(huì)改變他的值,如上,如果是直接調(diào)用title屬性,得到的值是“新聞標(biāo)題”,如果再對(duì)其賦值,此時(shí)title的值就是一件大事,如果對(duì)屬性重新賦值了,在接下來(lái)使用該屬性獲得的值都是后面賦值的內(nèi)容,因?yàn)轭?lèi)屬性實(shí)際上也就是一個(gè)變量。

重新賦值等同于:

$devote->title="一件大事"; 
//等同于: 
public $title="一件大事";

調(diào)用類(lèi)方法:

$對(duì)象->方法名(參數(shù))

調(diào)用類(lèi)常量是靜態(tài)調(diào)用,會(huì)在后面詳解。

可以通過(guò)打印對(duì)象來(lái)直觀的展示上面的內(nèi)容:

class devote{
        public $nickname="投稿人"; 
        public $content="投稿內(nèi)容"; 
        public $email="郵箱"; 
        public $phone="手機(jī)號(hào)"; 
        function clear($content){
         //過(guò)濾新聞內(nèi)容 
        } 
        function input(){
         //提交到數(shù)據(jù)庫(kù) 
        } 
} 
 
$devote=new devote(); 
var_dump($devote); 
//object(devote)#1 (4) { ["nickname"]=> string(9) "投稿人" ["content"]=> string(12) "投稿內(nèi)容" ["email"]=> string(6) "郵箱" ["phone"]=> string(9) "手機(jī)號(hào)" }

自己測(cè)試一下,可以看到成員屬性的值是默認(rèn)的,如果通過(guò)對(duì)象給成員屬性重新賦值,然后再打印對(duì)象:

$devote->nickname="小杜"; 
$devote->title="一件大事"; 
$devote->content="我手機(jī)沒(méi)電了"; 
$devote->email="2811051813@qq.com"; 
$devote->phone="就不告訴你"; 
$devote->clear($devote->content); 
$devote->input(); 
var_dump($devote);

可以發(fā)現(xiàn)類(lèi)屬性的值被改變了。

三、成員操作

上面的例子已經(jīng)涉及到了成員操作,即訪(fǎng)問(wèn)成員屬性和修改成員屬性,成元屬性基本的操作是增刪改查,查和改上面已經(jīng)演示過(guò),請(qǐng)看增加屬性的操作:

增加成員屬性直接在對(duì)象后調(diào)用一個(gè)不存在的成員屬性并賦值即可:

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

執(zhí)行上面的操作后會(huì)在類(lèi)中新增一個(gè)屬性id,并賦值為1,這個(gè)值在之后也可以通過(guò)對(duì)象直接訪(fǎng)問(wèn):

echo $devote->id; //輸出1

直接調(diào)用一個(gè)不存在的屬性也不會(huì)報(bào)錯(cuò),但是他的值是NULL。

var_dump($devote->ids); //NULL

刪除類(lèi)屬性使用unset方法:

unset($devote->id); 
var_dump($devote->id); 
//NULL

通過(guò)對(duì)象操作的類(lèi)屬性只在當(dāng)前對(duì)象下生效:

$devote->age=18; 
$dv=new devote(); 
var_dump($dv); 
//object(devote)#2 (4) { ["nickname"]=> string(9) "投稿人" ["content"]=> string(12) "投稿內(nèi)容" ["email"]=> string(6) "郵箱" ["phone"]=> string(9) "手機(jī)號(hào)" }

方法操作只有調(diào)用一種操作,即只可以通過(guò)對(duì)象調(diào)用類(lèi)的成員方法:

$devote->input();

注意:類(lèi)成員在類(lèi)中可以無(wú)限定義,但是類(lèi)中只能包含類(lèi)屬性、類(lèi)方法、類(lèi)常量,其他的語(yǔ)法都不可以寫(xiě)在類(lèi)中。

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

感謝各位的閱讀,以上就是“php成員里有哪些屬性”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)php成員里有哪些屬性這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI