Autor Zpráva
gaminn
Profil *
Zdravím,

je nějaký jiný způsob, jak uchovat nějakou sadu objektů, než použít pole?

Z databáze například vypisuji země, každá země se chová jako objekt a všechny země potřebuji uložit pro pozdější potřebu.

Takže mám:
$country[1]->name = 'XX';
$country[1]->code= 'XX';
$country[2]->name = 'XX';
$country[2]->code= 'XX';
$country[3]->name = 'XX';
$country[3]->code= 'XX';


Odpověď očekávám 'ne', ale nedalo mi to se nezeptat;)
tiso
Profil
Je - použiješ samostatné premenné :-)
gaminn
Profil *
OK, dobrý nápad :D
gaminn
Profil *
Nechce se mi zakládat nový thread, tak se ještě zeptám - jakým způsobem lze deklarovat objekt (nemyslím objekty vycházející z nějaké mnou naprogramované třídy)?

$object = new stdClass();
$object = (object) NULL;

Díky benevolentnímu PHP ($a['a'] = 'b'; nevyvolá žádnou notice) bych očekával, že půjde i $object->attr = 'a';.
ah01
Profil
To v PHP nelze.
thingwath
Profil
Ale tak pole není jediná možná datová struktura. Že pro to není nic přímo v jazyce neznamená, že to nejde napsat. Co bys na to ukládání zemí přímo potřeboval?
llook
Profil
$object = (object) null; by fungovat mělo, aspoň podle manuálu: http://www.php.net/manual/en/language.types.object.php#language.types. object.casting
gaminn
Profil *
Já nevím, co vlastně chci;) Ptám se prostě na jinou strukturu, zajímá mě, jaké jiné jsou možnosti.
gaminn
Profil *
Ano, tohle funguje:

$object = new stdClass();
$object = (object) NULL;

Analogicky z deklarace pole bych ale očekával, že bude fungovat:

$object->attr = 'a';
llook
Profil
K čemu by to $object->attr mělo být? Pole se zábavnou syntaxí?
gaminn
Profil *
llook
Nemusíme řešit, jestli to k něčemu je, to není podstatné. Ale když už, tak mi to může být na deklaraci nové země, které tu máme jako příklad:

$country[10]->name = 'ČR';
llook
Profil
Potom by to byl objekt bez metod, což je prakticky totéž jako pole:
$country[10]['name'] = 'ČR';
WanTo
Profil
Vracím se k původní otázce: můžeš využít třeba spojový seznam, zásobník, frontu, haldu, graf, hashové pole (mapu), množinu. Datových struktur je opravdu hodně, ale zde bude asi opravdu nejvhodnější pole.
Toto téma je uzamčeno. Odpověď nelze zaslat.