2013-01-18 14 views
203

Powiel możliwe:
Creating anonymous objects in phpphp utworzyć obiektu bez klasy

W JavaScript można easiliy utworzyć obiekt bez klasą:

myObj = {}; 
myObj.abc = "aaaa"; 

dla PHP I Znalazłem tę, ale ma ona prawie 4 lata: http://www.subclosure.com/php-creating-anonymous-objects-on-the-fly.html

$obj = (object) array('foo' => 'bar', 'property' => 'value'); 

Teraz z PHP 5.4 w 2013 roku, czy istnieje alternatywa dla tego?

+4

Odjazd tej odpowiedzi: http://stackoverflow.com/a/6384474/1606729 – koopajah

+0

$ obj = (obiekt)[]; $ obj-> someProp = "hej boy"; – AlFra

Odpowiedz

438

zawsze możesz użyć new stdClass(). Przykładowy kod:

$object = new stdClass(); 
    $object->property = 'Here we go'; 

    var_dump($object); 
    /* 
    outputs: 

    object(stdClass)#2 (1) { 
     ["property"]=> 
     string(10) "Here we go" 
    } 
    */ 

także od PHP 5.4 można uzyskać taką samą moc z:

$object = (object) ['property' => 'Here we go']; 
+15

+1 dla metody PHP 5.4, dzięki temu kod jest krótszy, bardziej czytelny, zwłaszcza gdy masz kilka przedmiotów do dodania do obiektu. – mark

+0

Jeśli szukasz przekształcenia macierzy zagnieżdżonej w obiekt, polecam użycie 'json_decode (json_encode ($ array)), który przekształci całą tablicę w zagnieżdżony obiekt stdClass. Jeśli użyjesz '(obiekt) $ tablica', to skonwertuje tylko pierwszą warstwę do obiektu, wszystko zagnieżdżone w środku pozostanie tablicą. – DerProgrammer

Powiązane problemy