php - objektumok és tömbök
vitafórum(0)
szerző: Crystaldátum: 2009-06-22
Kategóriák:
PHP/haladó
PHP-ben az objektumok és a tömbök - adattárolás szempontjából - nagyon hasonló szerkezetek, gyakran nem is tudjuk eldönteni, hogy melyiket használjuk bizonyos feladatra (pl. ActiveRecord minta). A kettő között viszont nagyon egyszerű az átjárás, tehát könnyen tudunk egy meglévő tömbből olyan objektumot csinálni, melynek olyan adattagjai vannak, amilyen kulcsok a tömbünkben voltak. Nézzünk egy példát:
- $obj = new stdClass;
- foreach ($arr as $k => $v) $obj->$k = $v;
Tehát létrehozunk egy tömböt és egy stdClass típusú objektumot (ez ugyebár php-ben az ősosztály), majd egy foreach ciklussal végigiterálunk a tömbön, és belerakjuk az értékeket az objektumba, mint új adattagokat. A lényeg ez a kifejezés: $obj->$k.
Visszafele hasonlóan működik a dolog. Az objektumok adattagjain ugyanúgy végigiterálhatunk foreach ciklussal, mint egy tömbön. Ilyenkor az objektum nyilvános adattagjait érhetjük el. A példában az előbb létrehozott objektumot másoljuk vissza egy másik tömbbe:
- foreach ($obj as $k => $v) $arr2[$k] = $v;
