RB
Size: a a a
RB
D
M
M
D
BD
D
P
function to_object( $data )
{
if ( !is_array( $data ) )
return $data;
foreach ( $data as &$val )
$val = to_object( $val );
unset( $val );
return new class( $data ) extends ArrayObject
{
public function __construct( $data )
{
foreach ( $data as $key => $val )
$this->$key = $val;
}
public function &__get( $name )
{
return $this->$name;
}
public function offsetGet( $name )
{
return $this->$name ?? null;
}
public function offsetSet( $name, $val )
{
return $this->$name = $val;
}
public function offsetExists( $name )
{
return isset( $this->$name );
}
public function offsetUnset( $name )
{
unset( $this->$name );
}
};
}
Creating default object from empty value in...
$test = to_object( ['foo' => 'bar'] );
$test->baz->foo = 'bar';
var_dump( $test->baz->foo );
F
F
F
F
F
D
P
F
P