2017-12-28 3 views
-1

beheben ich die new stdClass in Bezug auf das Senden von Daten an eine Funktion zu verstehen, versuche ich den folgenden Code erstellt haben, und ich werde eine Fehlermeldung erhalten, die Warning: Creating default object from empty value, aber sagt, noch habe ich den json Daten auch. Wie kann ich den Fehler beheben und warum bekomme ich ihn?Wie neue stdClass Fehler

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

Ergebnis wird wie folgt aussieht, und es ist ein Fehler, der oben unten Ergebnis, wie ich es erwähnt:

{"user":{"id":"12121212121"},"message":{"attachment":{"type":"file","image":"png"}}}

Antwort

2

erstellen stdClass für jede Referenz ähnlichen

$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

Danke, dass funktioniert, aber warum müssen wir stdClass für jeden von ihnen erstellen? Warum kann ein einzelner nicht die Arbeit machen? Bitte erklären Sie, Danke – callmejoejoe

+0

Beispiel $ send ist ein Objekt von stdClass, dann ist der Benutzer eine Eigenschaft und kein Objekt von stdClass. Um den Benutzer wieder als Objekt zu verwenden, müssen wir rekursiv stdClass verwenden –

Verwandte Themen