Obter uma propriedade de object PHP que é um número

Estou tentando obter uma propriedade de dados JSON decodificados em um object PHP. É apenas uma solicitação de API de dados do YouTube que retorna um object de vídeo que tenha um object de conteúdo assim;

[content] => stdClass Object ( [5] => https://www.youtube.com/v/r4ihwfQipfo?version=3&f=videos&app=youtube_gdata [1] => rtsp://v4.cache7.c.youtube.com/CiILENy73wIaGQn6pSL0waGIrxMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp [6] => rtsp://v6.cache3.c.youtube.com/CiILENy73wIaGQn6pSL0waGIrxMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp ) 

Fazendo

 $object->content->5 

Lança “T_DNUMBER inesperado” – o que faz todo o sentido. Mas como faço para obter o valor de uma propriedade que é um número?

Tenho certeza de que eu deveria saber disso. Desde já, obrigado.

Isso deve funcionar:

$object->content->{'5'}

Outra possibilidade é usar o segundo parâmetro para json_decode:

 $obj = json_decode(str, true); 

Você obtém uma matriz em vez de um object PHP, que você pode indexar como de costume:

 $obj['content'][5] 

Outra abordagem está lançando o object em matriz.

 $array = (array) $object; $array['content'][5]; 

JSON codifica, e então decodifica seu object passando verdadeiro como o segundo parâmetro na function de decodificação. Isso retornará uma matriz associativa.

 $array = json_decode(json_encode($object), true); 

Agora você pode usar sua nova matriz

 echo $array['content']['5']; 

O uso de $object->content->{'5'} não funcionará se o object foi criado por meio da transmissão de uma matriz para um object.

Uma descrição mais detalhada pode ser encontrada aqui: https://stackoverflow.com/a/10333200/58795