Warning: Creating default object from empty value

2019-07-27 03:40发布

NOTE: I've read the other topics on stackoverflow about how to solve this issue: Creating default object from empty value in PHP?

For some reason I still get the Warning message: Creating default object from empty value

I've tried a few things to fix the warning:

$data = new stdClass();
$data->result->complex->first_key = $old_data->result->complex;

also tried:

$data->result->complex = new stdClass();
$data->result->complex->first_key = $old_data->result->complex;

Still get the warning: Creating default object from empty value on the line number of the new stdClass() initialization above.

Desired Outcome: How can I properly initialize the new empty object?

2条回答
萌系小妹纸
2楼-- · 2019-07-27 04:15

If you want to avoid the warning you'll need to pre-create each level:

$data = new stdClass();
$data->result = new stdClass();
$data->result->complex = new stdClass();
$data->result->complex->first_key = $old_data->result->complex;
查看更多
姐就是有狂的资本
3楼-- · 2019-07-27 04:23

You are still missing "first" empty object

$data->result = new stdClass();

Whole can be done by:

$data = (object)['result' => (object)['complex' => (object)['first_key' => 'value']]];

Or by:

$data = json_decode(json_encode(['result' => [complex' => ['first_key' => 'value']]]));
查看更多
登录 后发表回答