Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何修复新的stdClass错误_Php_Stdclass - Fatal编程技术网

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