PHP 带点的 stdClass 对象

PHP stdClass Object with dot

我有一个 stdClass,它有一个名称中带有点的属性。它是通过 API 返回给我的,所以我无法使用该名称。 它看起来像这样:

stdClass Object ( [GetPlayerResult] => stdClass Object ( [RegistrationResponses.Player] => Array (...)

现在,我该如何访问数组?当我这样做时:

print_r($result->GetPlayerResult->RegistrationResponses.Player);

它(显然)只打印 "Player"。我尝试使用 [''] 语法(如关联数组)在最后一部分周围加上撇号,none 有效并抛出 500 错误。 有任何想法吗? 谢谢!

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

$arr = (array) $obj;
echo "<pre>";print_r($arr);exit;

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

您可以尝试使用大括号:

$object->GetPlayerResult->{"RegistrationResponses.Player"}

或者您可以将其转换为关联数组

$result = (array) $object->GetPlayerResult;
$player = $result["RegistrationResponses.Player"];

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

assoc

When TRUE, returned objects will be converted into associative arrays.