首頁  >  文章  >  後端開發  >  php存取權限修飾符有哪幾種

php存取權限修飾符有哪幾種

WBOY
WBOY原創
2022-06-30 16:11:082893瀏覽

PHP存取權限修飾符有三種:1、public,表示共有的,權限範圍最大,在任意位置都可以存取;2、protected,表示受保護的、繼承的,只能類別本身和類別的內部成員可以存取;3、private,表示私有的,只能在類別定義的大括號內才可以存取。

php存取權限修飾符有哪幾種

本文操作環境:Windows10系統、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:##私有類型,只能在類別的內部使用,在類別的外部或子類別中都無法使用。

特點:外部不可調用,內部可調用,子類別不可調用

該類型的屬性或方法只能在該類別中使用,在該類別的實例、子類別中、子類別的實例中都無法呼叫私有類型的屬性與方法

範例如下:

在建立方法時,如果沒有指明,預設皆為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 &#39;&#39; in C:\xampp\htdocs\v\v.php on line 48
 $s->ask_age();
  ?>

推薦學習:《

PHP影片教學

以上是php存取權限修飾符有哪幾種的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn