Monday, November 11, 2019

php - How to access an object property with a minus-sign?



I got an object (in PHP) and I can't print the content.
In debug-mode it's like this:



stdClass Object

(
[pre-selection] => 1
)


But I can't print the 'pre-selection' because of the minus sign.



echo $object->pre-selection; //doens't work.



How can I print this out? Thanks.


Answer



You could try



$object->{'pre-selection'};


http://php.net/manual/en/language.types.string.php#language.types.string.parsing.complex



See also Example 2 of json_decode()





Example #2 Accessing invalid object properties



Accessing elements within an object that contain characters not
permitted under PHP's naming convention (e.g. the hyphen) can be
accomplished by encapsulating the element name within braces and the
apostrophe.





$json = '{"foo-bar": 12345}';

$obj = json_decode($json);
print $obj->{'foo-bar'}; // 12345

?>




Update (thanks to salathe):




Curly braces may also be used, to clearly delimit the property name. They are most useful when accessing values within a property that contains an array, when the property name is made of mulitple parts, or when the property name contains characters that are not otherwise valid



No comments:

Post a Comment

hard drive - Leaving bad sectors in unformatted partition?

Laptop was acting really weird, and copy and seek times were really slow, so I decided to scan the hard drive surface. I have a couple hundr...