2010-06-25 2 views
1

stdClass::__set_state(array(
    'zone1' => 
    array (
    0 => 
    stdClass::__set_state(array(
     'id' => '123', 
     'owner' => '234', 
     ... 
    )), 
 

Salut,Ajout d'un objet dans un stdClass strcture de données (en php)

Mes bases sont un coup de peu, donc je vais avoir du mal avec ça ... Je dois créer la structure ci-dessus, mais je ne suis pas sûr de savoir comment ...

+1

'stdClass' n'a pas de méthode' __set_state() '. –

+1

@Daniel Egeberg: Vous avez raison, il n'a pas cette méthode. C'est juste la manière dont les objets sont exportés (ce qui n'a pas grand sens, pour stdClass) 'var_export ((object) array ('zone1' => array ((objet) array ('id' => '123', 'owner' => ' 234 ')))); – salathe

Répondre

7
$a = new stdclass; 
$a->zone1 = array(); 
$a->zone1[0] = new stdclass; 
$a->zone1[0]->id = "123"; 
$a->zone1[0]->owner = "234"; 

Sinon, en se fondant sur le fait que les tableaux sont convertis en objets stdClass lorsque casté en objets:

$a = (object) array(
    "zone1" => array(
     (object) array("id" => "123", "owner" => "234"), 
    ), 
); 

Pour cela, var_export donne:

 
stdClass::__set_state(array(
    'zone1' => 
    array (
    0 => 
    stdClass::__set_state(array(
     'id' => '123', 
     'owner' => '234', 
    )), 
), 
)) 

Notez que, Daniel a l'a souligné, stdClass n'a pas en fait une méthode __set_state. Je supposais que vous étiez simplement l'exemple de la structure de la variable en donnant la sortie de var_export. La sérialisation doit être effectuée avec serialize à la place.