簡體   English   中英

從PHP中的對象獲取屬性

[英]Get property from an object in PHP

必須做一些php編碼,但我是完全陌生的。 問題是我試圖從名為$ mgm_member的對象獲取屬性值,該對象來自wordpress插件,該插件記錄網站的會員信息。 首先,我使用:

var_dump(get_object_vars($mgm_member)); 

結果表明,該對象具有37個屬性,並且全部具有值。 比我嘗試使用

var_dump($mgm_member->phone);

結果為空。 我嘗試了許多其他屬性,但是只有該對象的第一個屬性才有價值。 誰能幫我? 非常感謝你。

好吧,我想如果“電話”的范圍是私有的var_dump將無法訪問和查看它,是嗎? 就我而言,我可以使用var_dump()函數查看所有屬性及其值,但是當我嘗試獲取一個屬性時,它就無法正常工作。 但是,我可以使用相同的代碼獲得第一個屬性“ id”

echo $mgm_member->id;

真是奇怪

var_dump(get_object_vars($mgm_member)); 顯示對象變量。 如果要通過此行代碼獲取數據,則對象中有數據。

您可以使用$mgm_member->phone在代碼中訪問變量的屬性-為什么不這樣做?

如果要將數據放入變量中,則可以使用以下方法:

$myVar=$mgm_member->phone;

但這違反了OOP的目的。 為什么不在代碼中$mgm_members->phone將其完全稱為$mgm_members->phone

編輯:正如您所指出的,該屬性是private ,這意味着只有對象本身可以使用它。 可以通過修改對象來解決此問題,但這可能是一種令人討厭的方法-由於某種原因它是私有的。 您不能使用對象內的函數來顯示值嗎? 或者,是否可以在對象中使用一個函數來返回具有不同屬性屬性的對象的克隆?

由於該屬性是“私有”的,因此您需要創建一個函數來訪問和返回它

轉儲可能會顯示它們,但您將無法直接訪問“私有”屬性。

class .... {

    public function getPhone()
    {
        return ($this->phone);
    }

}

然后:

echo $mgm_member->getPhone();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM