您好,登錄后才能下訂單哦!
小編給大家分享一下PHP如何實現(xiàn)在對象之外訪問其私有屬性private及保護屬性protected的方法,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
具體如下:
public 表示全局的訪問權(quán)限,類內(nèi)部外部子類都可以訪問;
private表示私有的訪問權(quán)限,只有本類內(nèi)部可以使用;
protected表示受保護的訪問權(quán)限,只有本類或子類或父類中可以訪問;
比較經(jīng)典的用法示例如下:
<?php //父類 class father{ public function a(){ echo "function a<br/>"; } private function b(){ echo "function b<br/>"; } protected function c(){ echo "function c<br/>"; } } //子類 class child extends father{ function d(){ parent::a();//調(diào)用父類的a方法 } function e(){ parent::c(); //調(diào)用父類的c方法 } function f(){ parent::b(); //調(diào)用父類的b方法 } } $father=new father(); $father->a(); // $father->b(); //顯示錯誤 外部無法調(diào)用私有的方法 Call to protected method father::b() // $father->c(); //顯示錯誤 外部無法調(diào)用受保護的方法Call to private method father::c() $chlid=new child(); $chlid->d(); $chlid->e(); // $chlid->f();//顯示錯誤 無法調(diào)用父類private的方法 Call to private method father::b() ?>
運行結(jié)果:
function a function a function c
在對象之外,php訪問私有及保護屬性實現(xiàn)方法如下:
class yunke { protected $a = 55; private $b = 66; public function merge() { $result = clone $this; $result->a=88; $result->b=99; return $result; } public function show() { echo $this->a; echo $this->b; } } $test = new yunke; $test->show(); $test2=$test->merge(); $test2->show();
輸出:
55668899
看完了這篇文章,相信你對“PHP如何實現(xiàn)在對象之外訪問其私有屬性private及保護屬性protected的方法”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。