Php 如何修复新的stdClass错误
我试图理解Php 如何修复新的stdClass错误,php,stdclass,Php,Stdclass,我试图理解新stdClass在向函数发送数据方面的含义,我创建了以下代码,我将得到一个错误,它是警告:从空值创建默认对象,但是,我仍然得到了json数据。如何修复错误以及为什么我会得到它 $send = new stdClass(); $send->user->id = '12121212121'; $send->message->attachment->type = 'file'; $send->message->attachment->imag
新stdClass
在向函数发送数据方面的含义,我创建了以下代码,我将得到一个错误,它是警告:从空值创建默认对象
,但是,我仍然得到了json数据。如何修复错误以及为什么我会得到它
$send = new stdClass();
$send->user->id = '12121212121';
$send->message->attachment->type = 'file';
$send->message->attachment->image = 'png';
$res = process($send);
function process($send){
$data = json_encode($send);
print_r($data);
}
结果如下所示,上面有一个错误,如下所示:
{“user”:{“id”:“1212121”},“message”:{“attachment”:{“type”:“file”,“image”:“png”}}}
像这样为每个引用创建stdClass
$send = new stdClass();
$send->user=new stdClass();
$send->user->id = '12121212121';
$send->message=new stdClass();
$send->message->attachment=new stdClass();
$send->message->attachment->type = 'file';
$send->message->attachment->image = 'png';
$res = process($send);
function process($send){
$data = json_encode($send);
print_r($data);
}
谢谢,这是可行的,但是为什么我们必须为每个stdClass创建stdClass呢?为什么只有一个stdClass不能完成这项工作呢?请解释一下,Thanksexample$send是stdClass的一个对象,那么user是一个属性,而不是stdClass的对象,所以要使user再次成为对象,我们必须递归地使用stdClass