Autor | Zpráva | ||
---|---|---|---|
Amunak Profil |
#1 · Zasláno: 18. 7. 2012, 14:44:59
Zdravím, udělal jsem si jednoduchou třídu menu která přijímá instance položek menu. Pro výpis by se mi hodilo mít přímý přístup k těmto položkám-objektům v cyklu, například:
$menuItems = array( 'uvod' => new MenuItem('/uvodni-stranka/', 'Úvod'), 'kontakt' => new MenuItem('/kontakt/', 'Kontaktní informace') ); $menu = new Menu($menuItems); echo 'Seznam odkazů v menu:<br>'; foreach ($menu as $menuItem) { echo $menuItem->getLink().'<br>'; } Něco takového umí třeba dibi, ovšem z jejího kódu jsem nebyl schopný vykoukat jak to dělá. |
||
Keeehi Profil |
#2 · Zasláno: 18. 7. 2012, 15:16:37
|
||
Majkl578 Profil |
Často se používá IteratorAggregate, stejně tak to dělá i DibiResult. Ty budeš nejspíš položky předané konstruktorem uchovávat v poli v nějaké vlastnosti, pak můžeš použít IteratorAggregate v kombinaci s ArrayIterator:
public function getIterator() { return new \ArrayIterator($this->items); } |
||
Amunak Profil |
Díky Keeehi. Ani nevím, jak jsem na to při hledání mohl nenarazit.
To je taky pěkná blbost co jsem napsal. Protože mám ty položky jako pole v jedné vlastnosti, tak můžu použít ten IteratorAggregate. Díky oběma. Ještě se zeptám - proč před název té třídy dávat lomítko? |
||
Lamicz Profil |
Protože Namespaces
Pokud je nepoužíváš, nemusíš je psát |
||
Časová prodleva: 12 let
|
0