Two Ways To Convert Array To StdClass With PHP

Converting an array to a StdClass object is super-simple with PHP. Using a type casting method you can quickly carry out an array to StdClass conversion in one line of code. Alternatively, you can harness the power of PHP’s encoding functions such as json_encode and json_decode.

In this tutorial, two of the alternate methods of converting an array to a fully operating object will be demonstrated.

Method 1: Type Casting with (object)

In the first method, we virtually hit the array on the head with a hammer and force a typecast conversion. First of all, we will need an array, let’s define an associative array of data first.

Array

$myArray = ["usersOnline" => 76, "registeredUsersOnline" => 21, "website" => "codewall"];

Next, we hit the variable on the head with a virtual object hammer to cast it to a StdClass.

PHP Conversion

$myStdClass = (object) $myArray;

var_dump($myStdClass);

Output

object(stdClass)#1 (3) { ["usersOnline"]=> int(76) ["registeredUsersOnline"]=> int(21) ["website"]=> string(8) "codewall" }

This conversion leaves us able to access the object with object-oriented style syntax, for example –

echo $myStdClass->usersOnline; // outputs 76

Method 2: Convert using encoding functions

In the second and alternative method, we will utilise the JSON encoding functions that PHP holds. Again, using the same simple array –

Array

$myArray = ["usersOnline" => 76, "registeredUsersOnline" => 21, "website" => "codewall"];

With the array, we first parse it into a JSON string with json_encode and finally, decode the string with the json_decode function.

PHP Conversion

$myStdClass = json_decode(json_encode($myArray));

var_dump($myStdClass);

Output

object(stdClass)#1 (3) { ["usersOnline"]=> int(76) ["registeredUsersOnline"]=> int(21) ["website"]=> string(8) "codewall" }

And again, we can utilise the object style syntax to access the values via their relative keys.

echo $myStdClass->website; // outputs codewall

And that is it, two super slick one-liners to convert an array into a fully operable StdClass object.

Posted in PHP

Leave a Reply