Neměl by AnnotationParser vracet pole místo ArrayObject?
- enumag
- Člen | 2118
Odpověď neznám, ale z kódu ArrayHash jsem vydedukoval, že se jedná
o třídu od které mají těžit další třídy které chtějí sjednotit
chování $obj->property
a $obj['property']
.
ArrayObject dělá něco jinýho, uvaž volání
$obj['property'] = $value
:
$obj instanceof ArrayObject
⇒ prostě uloží$value
do nějaké vnitřní struktury$obj instanceof ArrayHash
⇒ zavolá$obj->property = $value
, což často vede na __set, záleží na implementaci
Pak jsem narazil ještě na ArrayList, což je zřejmě pole kde indexy mohou být jen číselné hodnoty a nemá díry, když odebereš něco zprostředka tak se zbytek posune. Aby toho nebylo málo tak tu máme ještě Spl datové struktury.
- uestla
- Backer | 799
ArrayHash
by měl sloužit jako hash tabulka, čili klíč ⇒
hodnota,
pročež narozdíl od ArrayList
u neumožňuje vložení prvku
nakonec
pomocí $arrayHash[] = 'item'
.
Osobně ArrayHash používám mj. když chci šetřit paměť a nepředávat
si
skrz kód nativní pole a přemýšlet o referencích, předám prostě
instanci ArrayHash
…