成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

教你如何直接訪問(wèn)php實(shí)例對(duì)象的private屬性

Gilbertat / 3082人閱讀

摘要:被定義為公有的類成員可以在任何地方被訪問(wèn)。請(qǐng)看下面示例代碼來(lái)自官方文檔如上面代碼所示我們用一個(gè)類的實(shí)例對(duì)象訪問(wèn)一個(gè)類的私有或者受保護(hù)的成員屬性時(shí),會(huì)拋出一個(gè)致命錯(cuò)誤。下面是文章標(biāo)題要做的事情,訪問(wèn)實(shí)例對(duì)象的私有屬性。

在介紹關(guān)鍵部分之前,我們先回顧一下php面向?qū)ο蟮脑L問(wèn)控制。

對(duì)屬性或方法的訪問(wèn)控制,是通過(guò)在前面添加關(guān)鍵字 public(公有),protected(受保護(hù))或 private(私有)來(lái)實(shí)現(xiàn)的。被定義為公有的類成員可以在任何地方被訪問(wèn)。被定義為受保護(hù)的類成員則可以被其自身以及其子類和父類訪問(wèn)。被定義為私有的類成員則只能被其定義所在的類訪問(wèn)。

類屬性必須定義為公有,受保護(hù),私有之一。如果用 var 定義,則被視為公有。

請(qǐng)看下面示例代碼(來(lái)自官方文檔 http://php.net/manual/en/lang...:

public;
        echo $this->protected;
        echo $this->private;
    }
}

$obj = new MyClass();
echo $obj->public; // Works
echo $obj->protected; // Fatal Error
echo $obj->private; // Fatal Error
$obj->printHello(); // Shows Public, Protected and Private

如上面代碼所示,我們用一個(gè)類的實(shí)例對(duì)象訪問(wèn)一個(gè)類的私有或者受保護(hù)的成員屬性時(shí),會(huì)拋出一個(gè)致命錯(cuò)誤。

下面是文章標(biāo)題要做的事情,訪問(wèn)php實(shí)例對(duì)象的私有屬性。
按照我們正常的做法,一般都會(huì)是寫一個(gè)public的方法,再返回這個(gè)屬性。

public function getPrivate()
{
    return $this->private;
}

事實(shí)是我們本就應(yīng)該這樣做。

下面說(shuō)是只是特殊場(chǎng)景下的使用方法,平時(shí)寫代碼希望大家不要亂來(lái)。

a = "other";
        var_dump($other->a);
    }
}

$aa = new A();
$aa->test();

如上代碼所示,我們new了一個(gè)新的A對(duì)象出來(lái),再給這個(gè)實(shí)例的私有屬性a賦值,竟然沒(méi)有報(bào)錯(cuò)!

解釋:因?yàn)橥粋€(gè)類的對(duì)象即使不是同一個(gè)實(shí)例也可以互相訪問(wèn)對(duì)方的私有與受保護(hù)成員。這是由于在這些對(duì)象的內(nèi)部具體實(shí)現(xiàn)的細(xì)節(jié)都是已知的。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/25957.html

相關(guān)文章

  • PHP_OOP

    摘要:特殊在,方法被對(duì)象調(diào)用執(zhí)行時(shí),會(huì)自動(dòng)確定是那個(gè)對(duì)象調(diào)用的該方法,會(huì)使用該對(duì)象為方法內(nèi)的賦值構(gòu)造析構(gòu)類,沒(méi)有作用域,作用域,只是講,函數(shù)內(nèi)和函數(shù)外。析構(gòu)在對(duì)象消失對(duì)象被銷毀時(shí),也會(huì)自動(dòng)執(zhí)行一個(gè)方法,稱之為析構(gòu)方法。 相關(guān)定義 對(duì)象(object):現(xiàn)實(shí)生活中的實(shí)體,在編程語(yǔ)言中的體現(xiàn)。實(shí)體都有屬性和功能。一組數(shù)據(jù),和操作管理這些數(shù)據(jù)的操作,定義在一起就形成了一個(gè)實(shí)體,稱之為對(duì)象。(屬性和...

    RiverLi 評(píng)論0 收藏0
  • 手把手教你如何安裝wordpress,怎么樣搭建個(gè)人博客!

    摘要:輕量應(yīng)用服務(wù)器是阿里云面向入門級(jí)云計(jì)算及簡(jiǎn)單應(yīng)用用戶,提供基于單臺(tái)云服務(wù)器的域名管理應(yīng)用部署安全和運(yùn)維管理的一站式綜合服務(wù)。輕量應(yīng)用服務(wù)器,是可快速搭建且易于管理的輕量級(jí)云服務(wù)器。上傳至云服務(wù)器,用或者都可以。總結(jié)一下使用wordpress搭建個(gè)人博客的三大步驟: 1.購(gòu)買阿里云服務(wù)器 2.選擇安裝wordpress鏡像操作系統(tǒng) 3.安裝配置wordpress 4.購(gòu)買域名,配置域名...

    Richard_Gao 評(píng)論0 收藏0
  • PHP面試??純?nèi)容之面向對(duì)象(3)

    摘要:面試專欄正式起更,每周一三五更新,提供最好最優(yōu)質(zhì)的面試內(nèi)容。繼上一篇面試常考內(nèi)容之面向?qū)ο蟀l(fā)表后,今天更新面向?qū)ο蟮淖詈笠黄?。面向?qū)ο蟮闹饕卣鳛榉庋b繼承多態(tài)。為了提高內(nèi)聚性減少引起變化,單一原則是低耦合高內(nèi)聚的面向原則上的引申。 PHP面試專欄正式起更,每周一、三、五更新,提供最好最優(yōu)質(zhì)的PHP面試內(nèi)容。繼上一篇PHP面試常考內(nèi)容之面向?qū)ο螅?)發(fā)表后,今天更新面向?qū)ο蟮淖詈笠黄?...

    xfee 評(píng)論0 收藏0
  • 教你如何在@ViewChild查詢之前獲取ViewContainerRef

    摘要:使用指令代替查詢每一個(gè)指令都可以在它的構(gòu)造器中注入引用。讓我們聲明這樣一個(gè)指令我已經(jīng)在構(gòu)造器中添加了檢查代碼來(lái)保證視圖容器在指令實(shí)例化的時(shí)候是可用的。 原文:https://blog.angularindepth.c...作者:Max Koretskyi譯者:而井 【翻譯】教你如何在@ViewChild查詢之前獲取ViewContainerRef showImg(https://se...

    suxier 評(píng)論0 收藏0
  • 教你用Java字節(jié)碼做點(diǎn)有趣

    摘要:字節(jié)碼是程序的中間表示形式介于人類可讀的源碼和機(jī)器碼之間。在中一般是用編譯源文件變成字節(jié)碼,也就是我們的文件。字節(jié)碼的執(zhí)行操作,指的就是對(duì)當(dāng)前棧幀數(shù)據(jù)結(jié)構(gòu)進(jìn)行的操作。 0.寫在前面 為什么會(huì)寫這篇文章呢?主要是之前調(diào)研過(guò)日志脫敏相關(guān)的一些,具體可以參考LOG4j脫敏插件如何編寫里面描述了日志脫敏插件編寫方法: 直接在toString中修改代碼,這種方法很麻煩,效率低,需要修改每一個(gè)要...

    hqman 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<