访问带有属性的php对象

时间:2013-02-26 13:51:41

标签: php object

Google身份验证服务返回一个php对象(让我们称之为$ Ticket)。它的价值在于

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

现在我想访问alg的值,即“RS256”。

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

print_r没有提供任何内容。

3 个答案:

答案 0 :(得分:1)

Google_LoginTicket有getAttributes()函数,它返回属性数组,你可以在源代码中查看这个 https://github.com/sylvainw/GPlusGlobe/blob/master/src/auth/Google_LoginTicket.php

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

答案 1 :(得分:0)

您可以通过reflection访问私人媒体资源。但是,不建议这样做。这些主要是框架使用的功能。

相反,您应该搜索为您提供所需值的方法。

var_dump(get_class_methods($Ticket));

通常,阅读API文档或source file directly将允许您查看课程中可用的方法。

答案 2 :(得分:0)

envelope实例变量是私有的,因此您无法像这样访问它;你必须使用provided的方法:

$attributes = $Ticket->getAttributes();

$envelope = $attributes['envelope'];