警告:从空值创建默认对象(典型解决方案无法解决问题)

时间:2017-03-15 18:29:37

标签: php object warnings php-5.4

注意:我已经阅读了有关如何解决此问题的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()初始化的行号仍然会收到警告:从空值创建默认对象

期望的结果: 如何正确初始化新的空对象?

2 个答案:

答案 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']]]));