2012-08-07 185 views
0

必須做一些PHP編碼,但我完全不熟悉它。問題是我試圖從名爲$ mgm_member的對象中獲取屬性值,該對象來自wordpress插件,該插件記錄了網站的成員信息。首先我用:從PHP中的對象獲取屬性

var_dump(get_object_vars($mgm_member)); 

結果表明這個obeject有37個屬性,它們都有值。比我嘗試使用

var_dump($mgm_member->phone); 

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

好,我想,如果「手機」的範圍是私人的var_dump將不能訪問和查看它,是嗎?在我的情況下,我可以使用var_dump()函數查看所有屬性及其值,但是當我嘗試獲取一個屬性時,它不起作用。但是,我可以使用相同的代碼獲得第一個屬性「id」

echo $mgm_member->id; 

這真的很奇怪。

+1

我們看一些輸出。 – Prasanth 2012-08-07 13:20:19

+0

'手機'的範圍是什麼,如果它旁邊有'私人'一詞,你將需要一些功能來訪問它。 – Brian 2012-08-07 13:20:48

+0

首先,只要執行'var_dump($ mgm_member);',不要通過'get_object_vars()'運行它,因爲它會將它變成一個數組(所以你的var_dump不會有幫助)。 – Crontab 2012-08-07 13:21:23

回答

0

var_dump(get_object_vars($mgm_member));顯示對象變量。如果您使用這行代碼獲取數據,則您的對象中有數據。

您可以訪問變量的屬性在你的代碼$mgm_member->phone - 爲什麼不這樣做呢?

如果您希望將數據放入一個變量,你可以使用這樣的事情:

$myVar=$mgm_member->phone; 

但違背了OOP的目的。爲什麼不把它作爲完全通過你的代碼$mgm_members->phone

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

+0

我一定要使用mgm_members- $>手機一路走過我的代碼,但回聲$ mgm_members->電話顯示什麼,而我可以看到使用的var_dump($ mgm_member)的值,只有mgm_members- $> ID作品。 – simoncat 2012-08-07 13:41:26

+0

因爲我們公司實際上買了這個插件,而且我唯一知道的是我可以通過調用這個對象來獲得所有必需的信息。因此,我認爲最好的方法是聯繫他們的客戶服務人員尋求幫助,或者我需要自己查找文件。無論如何,謝謝你回答我的問題。 – simoncat 2012-08-07 13:55:19

0

由於該物業是'私人',您將需要作出訪問並返回它的功能

轉儲可能會顯示他們,但是你將不能夠直接訪問「私人」性質。

class .... { 

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

} 

則:

echo $mgm_member->getPhone();