Sunday 9 June 2019

arrays - Accessing number object in php




I got an object's value in foreach loop which is a number



> array(12) { [0]=> object(stdClass)#34 (22) {
[201609]=> string(6) "130000"
} }


When I try to access $query->201609 getting error





Parse error: syntax error, unexpected T_LNUMBER, expecting T_STRING or T_VARIABLE or '{' or '$'




I try to access by using $query->{201609} it gives me 0 value instead of 130000



How can I get that attribute?



This question is not duplicate. I've tried the other question's it doesn't help for me because it is in a loop.



Answer



This works in Php 7.2.4 (likely older versions as well):



$property = 201609;
var_dump($query->$property);


Tested like this:



$x = new stdClass();

$p = 123;
$x->$p = 456;
var_dump($x);


Output:



object(stdClass)#3 (1) {
["123"]=>
int(456)

}


Assuming "$query" is an array, not the object in question:



$property = 201609;
var_dump($query[0]->$property);

No comments:

Post a Comment

php - file_get_contents shows unexpected output while reading a file

I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print &q...