首頁  >  文章  >  後端開發  >  php物件導向public private protected 三個修飾符程式碼範例

php物件導向public private protected 三個修飾符程式碼範例

伊谢尔伦
伊谢尔伦原創
2017-07-03 09:57:281785瀏覽

本篇文章是對php物件導向public private protected 存取修飾符進行了詳細的分析介紹,需要的朋友參考下

PHP中有三種存取修飾符,分別是:
     public(公開的、預設)
     protected(受保護的)
     private(私有的)
1 )在PHP5如果類別沒有指定成員的存取修飾符,預設就是public的存取權限。
protected(受保護的)被宣告為protected的成員,只允許該類別的子類別進行存取。
private(私有的 ) 定義為private的成員,對於類別內部所有成員都可見,沒有存取限制。對類別外部不允許存取。
 
圖解

demo

程式碼如下:

class Woman{
    public $name = "gaojin";
    protected $age = "22";
    private $height = "170";
    function info(){
        echo $this->name;
    }
    private function say(){
        echo "这是私有的方法";
    }
}
//$w = new Woman();
//echo $w->info();
//echo $w->name;//公共
属性
可以访问
//echo $w->age;// 受保护属性,报致命错误
//echo $w->height;// 受保护属性,报致命错误
//私有方法,访问出错
//$w->say(); // 私有方法,访问出错
class Girl extends Woman{
    // 可以重新定义父类的public和protected方法,但不能定义private的
  //protected $name = "jingao"; // 可以从新定义
    function info(){
        echo $this->name;
        echo $this->age;
        echo $this->height;
    }
    function say(){
        //parent::say();//私有方法 不能被
继承
  如果父类的的say方法是protected 这里就不会报错
        echo "我是女孩";
    }
}
$g = new Girl();
$g->say();//正常输出
//echo $g->height;//私有属性访问不到 没输出结果
//$g->info();//这是输出 gaojin22 $height是私有的属性没有被继承
//$g->height ="12";//这里是重新定义 height属性 也赋值了 
//$g->info();//所以这里会输出来gaojin2212


#

以上是php物件導向public private protected 三個修飾符程式碼範例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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