PHP訪問權限修飾符有三種:1、public,表示共有的,權限范圍最大,在任意位置都可以訪問;2、protected,表示受保護的、繼承的,只能類本身和類的內部成員可以訪問;3、private,表示私有的,只能在類定義的大括號內才可以訪問。
本文操作環(huán)境:Windows10系統(tǒng)、PHP8.1版、Dell G3電腦
php訪問權限修飾符有哪幾種
有三種:
-
public 共有的
-
protected 受保護的,繼承的
-
private 私有的
詳細介紹:
public:
公有類型,在類的內部、子類中或者類的外部都可以使用,不受限制
特點:外部可調用,內部可調用,子類可調用
在子類中可以通過self::var調用public方法或屬性,parent::method調用父類方法
在實例中可以能過$obj->var 來調用 public類型的方法或屬性
protected:
受保護類型,在類的內部和子類中可以使用,但不能在類的外部使用
特點:外部不可調用 ,內部可調用 子類可以調用
在子類中可以通過self::var調用protected方法或屬性,parent::method調用父類方法
在實例中不能通過$obj->var 來調用 protected類型的方法或屬性
private:
私有類型,只能在類的內部使用,在類的外部或子類中都無法使用。
特點:外部不可調用 ,內部可調用,子類不可調用
該類型的屬性或方法只能在該類中使用,在該類的實例、子類中、子類的實例中都不能調用私有類型的屬性和方法
示例如下:
在創(chuàng)建方法時,如果沒有指明,默認均為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,設置數(shù)據(jù) 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"=>"商業(yè)營銷"); $s->set_data($arr); //echo $s->age;//Fatal error: Cannot access private property EMBA_student::$age in C:xampphtdocsvv.php on line 47 //$s->show_age(); //Fatal error: Call to private method EMBA_student::show_age() from context '' in C:xampphtdocsvv.php on line 48 $s->ask_age(); ?>
推薦學習:《PHP視頻教程》