2017-12-28 9 views
-1

함수에 데이터를 전송하는 측면에서 new stdClass을 이해하려고하는데 다음 코드를 작성했으며 Warning: Creating default object from empty value이라는 오류가 발생하지만 여전히 json 데이터도 마찬가지입니다. 오류를 수정하는 방법 및 오류가 발생하는 이유는 무엇입니까?새 stdClass 오류를 수정하는 방법

$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":"12121212121"},"message":{"attachment":{"type":"file","image":"png"}}}

답변

2

$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); 
} 
+0

감사 등의 각 기준에 대한 stdClass 만들기, 그 우리가 왜 그들 각각에 대해 표준 클래스를 만들어야 하는가?, 왜 단 하나가 일을 할 수 없습니까? 설명해주세요, 감사합니다 – callmejoejoe

+0

예제 $ send는 stdClass의 객체입니다. 사용자는 stdClass의 객체가 아니므로 사용자를 다시 객체로 만들려면 재귀 적으로 stdClass를 사용해야합니다. –