您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“php中類方法的訪問權限有哪幾種”,內容詳細,步驟清晰,細節處理妥當,希望這篇“php中類方法的訪問權限有哪幾種”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
php中類方法的訪問權限有三種:1、公有類型(public),在類的內部、子類中或者類的外部都可以使用,不受限制;2、受保護類型(protected);3、私有類型(private),只能在類的內部使用,在類的外部或子類中都無法使用。
本教程操作環境:windows7系統、PHP7.1版、DELL G3電腦
類中的成員方法
在類中定義的函數被稱為成員方法。函數和成員方法唯一的區別就是,函數實現的是某個獨立的功能,而成員方法是實現類中的一個行為,是類的一部分。
可以在類中聲明多個成員方法,成員方法的聲明和函數的聲明完全一樣,只不過在聲明成員方法時可以在function關鍵字的前面加一些訪問權限修飾符來控制訪問權限,例如 public、private、protected 等。
方法的訪問權限
有三種訪問權限分別是:
public:公有類型,在類的內部、子類中或者類的外部都可以使用,不受限制
特點:外部可調用,內部可調用,子類可調用
在子類中可以通過self::var調用public方法或屬性,parent::method調用父類方法
在實例中可以能過$obj->var 來調用 public類型的方法或屬性
protected:受保護類型,在類的內部和子類中可以使用,但不能在類的外部使用
特點:外部不可調用 ,內部可調用 子類可以調用
在子類中可以通過self::var調用protected方法或屬性,parent::method調用父類方法
在實例中不能通過$obj->var 來調用 protected類型的方法或屬性
private:私有類型,只能在類的內部使用,在類的外部或子類中都無法使用。
特點:外部不可調用 ,內部可調用,子類不可調用
該類型的屬性或方法只能在該類中使用,在該類的實例、子類中、子類的實例中都不能調用私有類型的屬性和方法
說明:
在創建方法時,如果沒有指明,默認均為public。
<?php class EMBA_student // 聲明EMBA學生類 { //用private來定義私有類的屬性 private $no; //序號 private $name; // 姓名 private $gender; //性別 private $age; //年齡 //方法 //方法1 ,私有方法,輸出年齡 private function show_age() { echo"我的年齡是:$this->age<br />"; } //方法2,公有方法,回答年齡 public function ask_age() { $this->show_age(); } //方法3,設置數據 function set_data($arr){ $this->no=$arr["no"]; $this->name=$arr["name"]; $this->gender=$arr["gender"]; $this->age=$arr["age"]; } } //實例化一個對象 $s=new EMBA_student; $arr=array("no"=>"1","name"=>"Qian Zhang","gender"=>"Female","age"=>"33","department"=>"商業營銷"); $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(); ?>
結果:
我的年齡是:33
補:self 和 parent 的區別
a).在子類中常用到這兩個對像。他們的主要區別在于self可以調用父類中的公有或受保護的屬性,但parent不可以調用
b).self:: 它表示當前類的靜態成員(方法和屬性) 與 $this 不同,$this是指當前對象
讀到這里,這篇“php中類方法的訪問權限有哪幾種”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。