首頁 >後端開發 >php教程 >PHP中的public,private和protected的簡單比較

PHP中的public,private和protected的簡單比較

青灯夜游
青灯夜游原創
2019-02-01 17:20:434733瀏覽

在PHP中有三個存取修飾符:public,private和protected,可以透過在聲明前加上這些關鍵字來定義屬性,方法或常數的可見性。那麼它們之間有什麼區別?下面這篇文章就來簡單介紹一下,希望對大家有幫助。

PHP中的public,private和protected的簡單比較

PHP public存取修飾符

public修飾符在內部和外部都可以使用。如果一個類別成員聲明為public,那麼它可以在任何地方被存取。 【影片教學推薦:PHP教學

範例:

<?php 
header("content-type:text/html;charset=utf-8");  
// BaseClass 
class pub { 
    public $tag_line = "php中文网!"; 
    function display() { 
        echo $this->tag_line."<br/>"; 
    } 
} 
  
// 子类
class child extends pub { 
    function show(){ 
        echo $this->tag_line; 
    } 
}  
  
// 对象声明
$obj= new child; 
  
// 输出
echo $obj->tag_line."<br/>";  
  
$obj->display();  
  
$obj->show();  
?>

輸出:

PHP中的public,private和protected的簡單比較

private存取修飾符

private修飾符可在其定義的類別及其父類別或繼承類別中使用。如果一個類別成員宣告為protected,則只能在類別本身內以及繼承和父類別中存取它。

範例:

<?php 
header("content-type:text/html;charset=utf-8");  
// 基类
class pro { 
    protected $x = 500; 
    protected $y = 500; 
              
    // 实现减法 
    function sub()  
    { 
        echo $sum=$this->x-$this->y . "<br/>"; 
    }      
}  
  
// 子类-继承类
class child extends pro { 
    function mul() //实现乘法
    { 
        echo $sub=$this->x*$this->y; 
    } 
}  
  
$obj= new child; 
$obj->sub(); 
$obj->mul(); 
?>

輸出:

PHP中的public,private和protected的簡單比較

#protected存取修飾符

protected修飾符可在定義它的類別中使用,附註:它不能在類別外部存取意味著繼承類別。

如果類別成員宣告為private,則它只能由定義該成員的類別存取。

範例:

<?php 
header("content-type:text/html;charset=utf-8");  
// 基类
class demo { 
    private $name="PHP中文网!"; 
      
    private function show() 
    { 
        echo "这是基类的私有方法"; 
    } 
}  
  
// 子类
class child extends demo { 
    function display() 
    { 
        echo $this->name; 
    } 
}  
  
// 对象声明
$obj= new child; 
  
// 出现异常---未捕获错误:调用私有方法demo::show()
//$obj->show();  
  
//出现异常--未定义的属性:子级::$name
$obj->display(); 
?>

輸出

PHP中的public,private和protected的簡單比較#:

說明:

從上例可以看出,它將顯示錯誤,因為無法在類別外存取私有類別資料。

以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。更多精彩內容大家可以追蹤php中文網相關教學欄位! ! !

以上是PHP中的public,private和protected的簡單比較的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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