2013-05-15 188 views
0

ID我有一個API工作,我將返回這些值:從它在PHP:獲取從對象

CultuurNet\Auth\User Object ([id:protected] => c23e4336-8f84-4501-9253-8b2faage5291 [tokenCredentials:protected] => CultuurNet\Auth\TokenCredentials Object ([token:protected] => 7f0be1ffab3a456a8a8aa5efeea86c1f [secret:protected] => ab3c927180d7854de0e8e5842a21bc92f)) 

我怎樣才能retreave的[ID保護]?

+0

不能。受保護的成員是從類中唯一的訪問:http://stackoverflow.com/questions/4643274/php-protected-classes-and-properties-protected-from-whom –

+0

只有公共屬性/方法檢索 – samayo

回答

0

我假設你測試了一個getter方法嗎?像

$object->getId(); 

的東西,如果一個getter不存在,你可以使用反射,請參考Maxim汗穆罕默多夫的答案。

0

使用reflections

$reflection = new ReflectionClass($user); 
$property = $reflection->getProperty('id'); 
$property->setAccessible(true); 

$id = $property->getValue($user); 

但是真正的方法是使用getters/setters。

+0

還給警告 ReflectionProperty ::的getValue()期望的是1個參數,0給出 – user20

+0

@Miaw什麼警告? '$ user'這裏當然是'CultuurNet \ Auth \ User'的實例。請參閱更新(期待實例)。 –

+0

我忘了將'$ user'傳遞給'getValue()'。 –

0

擴展CultuurNet \驗證\用戶與一類自己化妝,然後呈現返回保護變量get_id()函數。

class MyUser extends CultuurNet\Auth\User { 
    function get_id() { 
    return $this->id; 
    } 
} 
+0

他表示返回對象,並且不能擴展對象,只能擴展類。所以這是行不通的。 –