PHP存取權限修飾符有三種:1、public,表示共有的,權限範圍最大,在任意位置都可以存取;2、protected,表示受保護的、繼承的,只能類別本身和類別的內部成員可以存取;3、private,表示私有的,只能在類別定義的大括號內才可以存取。
本文操作環境:Windows10系統、PHP8.1版、Dell G3電腦
有三種:
public 共有的
protected 受保護的,繼承的
private 私有的
# 詳細介紹:
##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(); ?>
推薦學習:《
PHP影片教學以上是php存取權限修飾符有哪幾種的詳細內容。更多資訊請關注PHP中文網其他相關文章!