注意:我已经阅读了有关如何解决此问题的stackoverflow上的其他主题: Creating default object from empty value in PHP?
出于某种原因,我仍然收到警告消息:从空值创建默认对象
我已经尝试了一些方法来修复警告:
$data = new stdClass();
$data->result->complex->first_key = $old_data->result->complex;
也尝试过:
$data->result->complex = new stdClass();
$data->result->complex->first_key = $old_data->result->complex;
上面的新stdClass()初始化的行号仍然会收到警告:从空值创建默认对象。
期望的结果: 如何正确初始化新的空对象?
答案 0 :(得分:4)
如果您想避免警告,则需要预先创建每个级别:
$data = new stdClass();
$data->result = new stdClass();
$data->result->complex = new stdClass();
$data->result->complex->first_key = $old_data->result->complex;
答案 1 :(得分:1)
你仍然缺席"首先"空对象
$data->result = new stdClass();
整个可以通过以下方式完成:
$data = (object)['result' => (object)['complex' => (object)['first_key' => 'value']]];
或者通过:
$data = json_decode(json_encode(['result' => [complex' => ['first_key' => 'value']]]));