Have you ever seen a scenario where you’re accessing data as an object, such as when you’re using WordPress’s database interface or when you’re parsing XML files with SimpleXML? You have something like echo $result->name.
Have you ever wondered how that was done? Using PHP’s stdClass feature you can create an object, and assign data to it, without having to formally define a class.
Suppose you wanted to quickly create a new object to hold some data about a book. You would do something like this:
$book = new stdClass; $book->title = "Harry Potter and the Prisoner of Azkaban"; $book->author = "J. K. Rowling"; $book->publisher = "Arthur A. Levine Books"; $book->amazon_link = "http://www.amazon.com/dp/0439136369/";
You can then access the data by calling $book->title and so on.
Or what if you wanted to take an array and turn it into an object? You can do that by casting the variable.
$array = array( "title" => "Harry Potter and the Prisoner of Azkaban", "author" => "J. K. Rowling", "publisher" => "Arthur A. Levine Books", "amazon_link" => "http://www.amazon.com/dp/0439136369/" ); $books = (object) $array;
This should produce the same result as the previous code snippet. You could also go the other direction, casting an object into an array by using $array = (array) $object.
Objects are really useful when you’re working with a large data structure, as you can have an object with nested sub-arrays in it, as SimpleXML tends to return. You get most of the data as properties of the result set object, and the posts in an RSS feed are assigned to array entries, which then have further objects inside them.











Nice article. Very easy comprehensible. TYVM
Seems to be an easy alternative to a registry class.
thanks for that! especially the 2nd time for casting arrays into objects.
Thanks, I was searching for casting an object into an array by using $array = (array) $object.
Nice article but if any one need more then can check http://php.net/manual/en/language.oop5.basic.php link.
Excellent article. Thank you.
Perfect. I googled this two times over the last week and luckily always landed on your site.
Very good demonstration of stdClass. One subtle difference between the stdClass and Object in other OOP is that stdClass is not a base class of object.
Great article about that topic. Thank you very much.
Nice explanation!thanks
Really nice explanation. Easy to understand. Thank you very much.
Hi,
Thank you for this article.
I was looking for a way to create obects dinamically in PHP, with no class, and stdClass seems to be usefull for this.
I personally prefer working with Objects than arrays, and stdClass is a perfect alternative. Thanks for a good article.
I use this technique from time to time, as it is more convenient for me to address object property in the code, comparing to array element.
.
I went to your blog via Google just to remember, how stdclass is named
Thanks.
Thanks.Nice explaination.
Been looking for something like for array to object conversion! Thanks guy – Awesome!
thansk ! i am processing a project and i need this !
Work with arrays faster then with objects
In php of course
Very nice article..
Short but Covers THE Thing
Thanks
Jaffer
It’s worth mentioning that if you cast a multidimensional array as an object it only converts the top level to an object. Sub-arrays will still be arrays.
To convert an entire multidimensional array to an object do the following:
$obj = json_decode(json_encode($array));
Good Article
really helpful
Thanks for the clear no nonsense approach.
Too many sites are too much text. This is just simple for programmers to understand!.
Love it.