在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(); ?>
輸出:
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(); ?>
輸出:
#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中文網相關教學欄位! ! !
以上是PHP中的public,private和protected的簡單比較的詳細內容。更多資訊請關注PHP中文網其他相關文章!