Navigation


RSS: tutorialok Jelenleg 5 vendég és 0 tag van az oldalon.

php - objektumok és tömbök

szerző: Crystal
dá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:
  1.  
  2. $arr = array('key1' => 'val1', 'key2' => 'val2', 'key3' => 'val3');
  3.  
  4. $obj = new stdClass;
  5.  
  6. foreach ($arr as $k => $v) $obj->$k = $v;
  7.  

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:
  1.  
  2. $arr2 = array();
  3.  
  4. foreach ($obj as $k => $v) $arr2[$k] = $v;
  5.