In PHP, you can initialize arrays with values quickly using the following notation:
$array = array(\"name\" => \"member 1\", array(\"name\" => \"member
I also up-voted Gumbo as the preferred solution but what he suggested is not exactly what was asked, which may lead to some confusion as to why member1o looks more like a member1a.
To ensure this is clear now, the two ways (now 3 ways since 5.4) to produce the same stdClass in php.
As per the question's long or manual approach:
$object = new stdClass;
$object->member1 = "hello, I'm 1";
$object->member1o = new stdClass;
$object->member1o->member1 = "hello, I'm 1o.1";
$object->member2 = "hello, I'm 2";
The shorter or single line version (expanded here for clarity) to cast an object from an array, ala Gumbo's suggestion.
$object = (object)array(
'member1' => "hello, I'm 1",
'member1o' => (object)array(
'member1' => "hello, I'm 1o.1",
),
'member2' => "hello, I'm 2",
);
PHP 5.4+ Shortened array declaration style
$object = (object)[
'member1' => "hello, I'm 1",
'member1o' => (object)['member1' => "hello, I'm 1o.1"],
'member2' => "hello, I'm 2",
];
Will both produce exactly the same result:
stdClass Object
(
[member1] => hello, I'm 1
[member1o] => stdClass Object
(
[member1] => hello, I'm 1o.1
)
[member2] => hello, I'm 2
)
nJoy!