成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

教你如何直接訪問php實例對象的private屬性

Gilbertat / 3122人閱讀

摘要:被定義為公有的類成員可以在任何地方被訪問。請看下面示例代碼來自官方文檔如上面代碼所示我們用一個類的實例對象訪問一個類的私有或者受保護的成員屬性時,會拋出一個致命錯誤。下面是文章標題要做的事情,訪問實例對象的私有屬性。

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

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

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

請看下面示例代碼(來自官方文檔 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

如上面代碼所示,我們用一個類的實例對象訪問一個類的私有或者受保護的成員屬性時,會拋出一個致命錯誤。

下面是文章標題要做的事情,訪問php實例對象的私有屬性。
按照我們正常的做法,一般都會是寫一個public的方法,再返回這個屬性。

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

事實是我們本就應該這樣做。

下面說是只是特殊場景下的使用方法,平時寫代碼希望大家不要亂來。

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

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

如上代碼所示,我們new了一個新的A對象出來,再給這個實例的私有屬性a賦值,竟然沒有報錯!

解釋:因為同一個類的對象即使不是同一個實例也可以互相訪問對方的私有與受保護成員。這是由于在這些對象的內(nèi)部具體實現(xiàn)的細節(jié)都是已知的。

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

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/25957.html

相關(guān)文章

  • PHP_OOP

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

    RiverLi 評論0 收藏0
  • 手把手教你如何安裝wordpress,怎么樣搭建個人博客!

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

    Richard_Gao 評論0 收藏0
  • PHP面試??純?nèi)容之面向對象(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 評論0 收藏0
  • 教你如何在@ViewChild查詢之前獲取ViewContainerRef

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

    suxier 評論0 收藏0
  • 教你用Java字節(jié)碼做點有趣

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

    hqman 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<