2013-02-26 166 views
0

Google auth服務返回一個php對象(讓我們稱它爲$ Ticket)。它的價值是這樣的訪問具有屬性的php對象

Google_LoginTicket Object ([envelope:Google_LoginTicket:private] => Array ([alg] => RS256 [kid] => 057d4167ee9b75e7b3a3fcc9c1ca17a14dab5044)) 

現在我想訪問alg的值,即「RS256」。

print_r ($Ticket->{'envelope:Google_LoginTicket:private'}); 

print_r不給任何東西。

+0

您是否嘗試過做'的print_r($票)'?添加輸出到你的問題 – 2013-02-26 13:55:17

+0

@adam他發佈它的價值? – Chris 2013-02-26 13:55:38

回答

1

Google_LoginTicket具有的getAttributes()函數,它的屬性返回的數組,你可以檢查此,在源代碼中 https://github.com/sylvainw/GPlusGlobe/blob/master/src/auth/Google_LoginTicket.php

$attrs = $Ticket->getAttributes(); 
print_r($attrs["envelope"]); 
+0

我想補充說,Google_LoginTicket是私人的,所以你不能直接訪問它。公開任何屬性是壞習慣。人們應該總是嘗試使用getter/setter。 – 2013-02-26 14:00:46

+0

「信封」是私人的;)Google_LoginTicket是類名 – gaskar 2013-02-26 14:03:00

0

您可以通過訪問reflection私有財產。但是,不推薦。這些主要是框架使用的功能。

相反,您應該搜索提供您正在查找的值的方法。

var_dump(get_class_methods($Ticket)); 

通常情況下,閱讀API文檔或source file directly將允許您查看該類上可用的方法。

0

envelope實例變量是私有的,所以你不能像訪問它那樣;你有是provided方法工作:

$attributes = $Ticket->getAttributes(); 

$envelope = $attributes['envelope'];