溫馨提示×

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

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

php中類方法的訪問權(quán)限有哪幾種

發(fā)布時(shí)間:2022-02-18 11:51:06 來源:億速云 閱讀:237 作者:iii 欄目:編程語言

本文小編為大家詳細(xì)介紹“php中類方法的訪問權(quán)限有哪幾種”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“php中類方法的訪問權(quán)限有哪幾種”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識(shí)吧。

php中類方法的訪問權(quán)限有三種:1、公有類型(public),在類的內(nèi)部、子類中或者類的外部都可以使用,不受限制;2、受保護(hù)類型(protected);3、私有類型(private),只能在類的內(nèi)部使用,在類的外部或子類中都無法使用。

php中類方法的訪問權(quán)限有哪幾種

本教程操作環(huán)境:windows7系統(tǒng)、PHP7.1版、DELL G3電腦

類中的成員方法

在類中定義的函數(shù)被稱為成員方法。函數(shù)和成員方法唯一的區(qū)別就是,函數(shù)實(shí)現(xiàn)的是某個(gè)獨(dú)立的功能,而成員方法是實(shí)現(xiàn)類中的一個(gè)行為,是類的一部分。

可以在類中聲明多個(gè)成員方法,成員方法的聲明和函數(shù)的聲明完全一樣,只不過在聲明成員方法時(shí)可以在function關(guān)鍵字的前面加一些訪問權(quán)限修飾符來控制訪問權(quán)限,例如 public、private、protected 等。

方法的訪問權(quán)限

有三種訪問權(quán)限分別是:

public:公有類型,在類的內(nèi)部、子類中或者類的外部都可以使用,不受限制

特點(diǎn):外部可調(diào)用,內(nèi)部可調(diào)用,子類可調(diào)用

在子類中可以通過self::var調(diào)用public方法或?qū)傩?parent::method調(diào)用父類方法

在實(shí)例中可以能過$obj->var 來調(diào)用 public類型的方法或?qū)傩?/p>

protected:受保護(hù)類型,在類的內(nèi)部和子類中可以使用,但不能在類的外部使用

特點(diǎn):外部不可調(diào)用 ,內(nèi)部可調(diào)用 子類可以調(diào)用

在子類中可以通過self::var調(diào)用protected方法或?qū)傩?parent::method調(diào)用父類方法

在實(shí)例中不能通過$obj->var 來調(diào)用 protected類型的方法或?qū)傩?/p>

private:私有類型,只能在類的內(nèi)部使用,在類的外部或子類中都無法使用。

特點(diǎn):外部不可調(diào)用 ,內(nèi)部可調(diào)用,子類不可調(diào)用

該類型的屬性或方法只能在該類中使用,在該類的實(shí)例、子類中、子類的實(shí)例中都不能調(diào)用私有類型的屬性和方法

說明:

在創(chuàng)建方法時(shí),如果沒有指明,默認(rèn)均為public。

<?php
 class EMBA_student  // 聲明EMBA學(xué)生類
      {
          //用private來定義私有類的屬性
          private $no; //序號(hào)
          private $name; // 姓名
          private $gender; //性別
          private $age; //年齡

          //方法
          //方法1 ,私有方法,輸出年齡

       private   function show_age()
          {

  echo"我的年齡是:$this->age<br />";

              }
//方法2,公有方法,回答年齡
public function ask_age()
{
    $this->show_age();
    }
//方法3,設(shè)置數(shù)據(jù)
function set_data($arr){
    $this->no=$arr["no"];
        $this->name=$arr["name"];
            $this->gender=$arr["gender"];
                $this->age=$arr["age"];
    }
          }

 //實(shí)例化一個(gè)對(duì)象
 $s=new EMBA_student;
 $arr=array("no"=>"1","name"=>"Qian Zhang","gender"=>"Female","age"=>"33","department"=>"商業(yè)營(yíng)銷");
 $s->set_data($arr);

//echo $s->age;//Fatal error: Cannot access private property EMBA_student::$age in C:\xampp\htdocs\v\v.php on line 47
//$s->show_age(); //Fatal error: Call to private method EMBA_student::show_age() from context '' in C:\xampp\htdocs\v\v.php on line 48

 $s->ask_age();

  ?>

結(jié)果:

我的年齡是:33

補(bǔ):self 和 parent 的區(qū)別

a).在子類中常用到這兩個(gè)對(duì)像。他們的主要區(qū)別在于self可以調(diào)用父類中的公有或受保護(hù)的屬性,但parent不可以調(diào)用

b).self:: 它表示當(dāng)前類的靜態(tài)成員(方法和屬性) 與 $this 不同,$this是指當(dāng)前對(duì)象

讀到這里,這篇“php中類方法的訪問權(quán)限有哪幾種”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(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