I'm trying to get the twelve ids that this structure shows:
stdClass Object
(
[checkins] => stdClass Object
(
[count] => 12
[items] => Array
(
[0] => stdClass Object
(
[venue] => stdClass Object
(
[id] => 4564654646456
.
.
I do:
$checkins = $fsObjUnAuth->get("/users/self/checkins");
$count = $checkins ->response->checkins->count; // so I can get 12
for( $i = 0; $i < $count; $i ++)
{
$a1[] = $checkins['items'][$i]['venue']['id']; //two tries
$a2[] = $checkins ->response->checkins->items->$i->venue->id;
echo $i; echo ": ";
echo $a1;echo"<br>";
echo $a2;echo"<br>"
}
But I get: Fatal error: Cannot use object of type stdClass as array in line..
Please can someone show me how to do this?
Thanks a lot
The stdClass is the empty class in PHP which is used to cast other types to object. It is similar to Java or Python object. The stdClass is not the base class of the objects. If an object is converted to object, it is not modified.
Creating stdClass Object php $obj= new stdClass(); $obj->name= 'W3schools'; $obj->extension= 'In'; var_dump($object); ?> Whenever you need a generic object instance in your program, you can use stdClass because when you cast any other type to an object, you will get an instance of stdClass.
Objects of a class is created using the new keyword.
The most practical approach is simply to cast the object you are interested in back into an array, which will allow you to access the properties: $a = array('123' => '123', '123foo' => '123foo'); $o = (object)$a; $a = (array)$o; echo $o->{'123'}; // error!
You cannot access object members via the array subscript operator []
.
You have to use the ->
operator:
$x = new StdClass();
$x->member = 123;
In your case you'll have to use a mixture, since you have an object ($checkins
) with a member ($items
) which is an array, which contains additional objects.
$a1[] = $checkins->items[$i]->venue->id;
Here is a simple solution to convert a stdClass Object in array in php with function get_object_vars
Look at : http://php.net/manual/fr/function.get-object-vars.php
Ex :
debug($array);
$var = get_object_vars($array);
debug($var);
Or replace debug
by print_r
I'm use CakePHP framework
Cdt
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With