溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PHP如何實現(xiàn)在對象之外訪問其私有屬性private及保護屬性protected的方法

發(fā)布時間:2021-06-22 15:22:35 來源:億速云 閱讀:210 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下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è)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(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)容。

AI