带点的PHP stdClass对象

带点的PHP stdClass对象,php,stdclass,Php,Stdclass,我有一个stdClass,它的名称中有一个带点的属性。它是通过API返回给我的,所以我对这个名字无能为力。 看起来是这样的: stdClass Object ( [GetPlayerResult] => stdClass Object ( [RegistrationResponses.Player] => Array (...) 现在,如何访问阵列?当我这样做时: print_r($result->GetPlayerResult->RegistrationRespons

我有一个stdClass,它的名称中有一个带点的属性。它是通过API返回给我的,所以我对这个名字无能为力。 看起来是这样的:

stdClass Object ( [GetPlayerResult] => stdClass Object ( [RegistrationResponses.Player] => Array (...)
现在,如何访问阵列?当我这样做时:

print_r($result->GetPlayerResult->RegistrationResponses.Player);
它(显然)只打印“玩家”。我试着在最后一部分加上撇号,使用['']语法(像一个关联数组),所有这些都不起作用,并抛出500个错误。 有什么想法吗?
谢谢

请使用此函数将对象转换为数组

$arr = (array) $obj;
echo "<pre>";print_r($arr);exit;
$arr=(数组)$obj;
回声“;印刷费($arr);出口

通过打印$arr,您可以显示数组的元素。

您可以尝试使用大括号:

$result = (array) $object->GetPlayerResult;
$player = $result["RegistrationResponses.Player"];
或者可以将其强制转换为关联数组

如果要使用解析网站响应,请注意存在作为关联数组返回的第二个参数:

协会 如果为TRUE,则返回的对象将转换为关联数组


无法使用“打印”访问数组的元素。。。您只能从输出中看到它,而不是通过将其读入有用的值来实际“访问”它。我不认为打印关联数组比打印对象有任何明显的优势。。。此外,你只是将浅层的对象投射到一个数组中,而深层的对象仍然是对象。好的,我只想告诉你,你可以看到所有的元素,其他什么都看不到。你可以做完全相同的事情,而不必将其转化为数组。特别是当你没有真正深入地把它转换成数组的时候。
$result = (array) $object->GetPlayerResult;
$player = $result["RegistrationResponses.Player"];