Rozdíl mezi ArrayHash a ArrayList?
- Filip Procházka
- Moderator | 4668
ArrayList
je seznam nějakých hodnot, kde na klíči
nezáleží. ArrayHash
se používá jako obálka na data
z databáze. Představuje vždy jednotlivé řádky. Nebo taky hodnoty
z formuláře.
List je seznam hodnot a Hash je asociativní pole (objekt), kde on sám představuje nějaký logický celek (řádek tabulky databáze).
Zkus si pohledat význam List a Hash na Google, kdyby ti to přišlo nejasné :) Bližšímu pochopení jiste pomůže i pohled do kódu.
- duke
- Člen | 650
- array … Hašovací tabulka jakožto speciální php konstrukce
- ArrayHash … Hašovací tabulka jakožto php objekt
- ArrayList … Pole jakožto php objekt (interně jde o emulaci pole hašovací tabulkou)
Přitom ArrayHash i ArrayList implementují rozhraní ArrayAccess, takže
u nich lze používat notaci jako u array, tj. $foo[$bar]
.
U ArrayHash je možné přistupovat k prvkům hašovací tabulky také přes
$foo->$bar
.
O tom, co je to hašovací tabulka, si můžeš počíst např. na wikipedii: https://cs.wikipedia.org/…3%AD_tabulka
Co na co použít závisí na tvých požadavcích. Rozdíl mezi ArrayHash a
array je krom možnosti přístupu k prvkům přes operátor ->
také v tom, jak se hodnoty těchto typů předávají funkcím. Objekty
ArrayHash (stejně jako ArrayList a jakéhokoli jiného objektu) se budou
předávat odkazem, hodnoty typu array tzv. hodnotou (budou se automaticky
kopírovat, pokud nepoužiješ operátor &).
Pokud tě nezajímají konkrétní klíče hodnot, ale zajímá tě jejich pořadí, pak může být vhodné použít ArrayList. ArrayList krom toho vyhazuje výjimky při použití nesprávného indexu.
Editoval duke (19. 11. 2011 3:28)