php - property - stdclass object
Obtenga una propiedad de objeto PHP que sea un nĂºmero (4)
Codificación JSON, y luego decodificar su objeto pasando verdadero como el segundo parámetro en la función de decodificación. Esto devolverá una matriz asociativa.
$array = json_decode(json_encode($object), true);
Ahora puedes usar tu nueva matriz
echo $array[''content''][''5''];
El uso de $object->content->{''5''}
no funcionará si el objeto fue creado al enviar una matriz a un objeto.
Una descripción más detallada se puede encontrar aquí: https://stackoverflow.com/a/10333200/58795
Estoy tratando de obtener una propiedad de los datos JSON decodificados en un objeto PHP. Es solo una solicitud de la API de datos de YouTube que devuelve un objeto de video que tiene un objeto de contenido como los gusanos;
[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
)
Obra
$object->content->5
Lanza "T_DNUMBER inesperado", lo cual tiene perfecto sentido. ¿Pero cómo obtengo el valor de una propiedad que es un número?
Estoy seguro de que debería saber esto. Gracias por adelantado.
Esto debería funcionar:
$object->content->{''5''}
Otra posibilidad es usar el 2 ° parámetro para json_decode:
$obj = json_decode(str, true);
Obtiene una matriz en lugar de un objeto PHP, que luego puede indexar como de costumbre:
$obj[''content''][5]
Otro enfoque es lanzar el objeto a la matriz.
$array = (array) $object;
$array[''content''][5];