Sherman
Mephi
Как создать коллекцию(+)
Хотелось бы сделать следующее.
Есть некоторый класс, который имеет такую струкуру данных:
В php4(метод __get() убираем), я просто сделал бы так:
добавил бы член класса массив $itemCollection и аккуратно складывал бы туда массивы $item, обычным копированием:
$this->itemCollection[] = $this->item;
В итоге я получил бы такой синтаксис:
В php5 появлась возможность сделать это эффектнее.
Такое работает с одной записью.
Теперь обясню чего я хочу добиться. Возможно ли получить синтаксис вида:
Вот как грамотно реализовать коллекцию item. И еще вопрос, не ударит ли это катастрофически по производительности?
-~{}~ 28.07.05 18:44:
//еще добавления.
Еще раз подчеркну, что меня смущает то, что в коллекции объектов надо будет хранить экземпляр класса, а не массив. Каким образом это скажется на производительности?
p.s. Все это мне нужно для того, чтобы максимально упростить и формализовать работу для третьих лиц(программистов), т.е. написать понятный API. Сам код реализации им виден не будет, будет только дан набор классов, где есть методы, которые делаю всю работу. Также будет дана подробная документация по этим методам с примерами.
p.p.s. Раньше немного работал с .NET и c#.
Хотелось бы сделать следующее.
Есть некоторый класс, который имеет такую струкуру данных:
Код:
class Item
{
private $item("key"=>$value,..);
__get($key)
{
return $this->item[$key];
}
//другие методы, которые заполняют $this->item из бд
}
добавил бы член класса массив $itemCollection и аккуратно складывал бы туда массивы $item, обычным копированием:
$this->itemCollection[] = $this->item;
В итоге я получил бы такой синтаксис:
Код:
$item = new Item();
$item->Get();
foreach($item->itemCollection as $itemInfo)
{
echo $itemInfo["key"];
}
Код:
$item = new Item();
$item->Get();
echo $item->key;
Теперь обясню чего я хочу добиться. Возможно ли получить синтаксис вида:
Код:
foreach($itemCollection as $item)
{
echo $item->key;
}
-~{}~ 28.07.05 18:44:
//еще добавления.
Еще раз подчеркну, что меня смущает то, что в коллекции объектов надо будет хранить экземпляр класса, а не массив. Каким образом это скажется на производительности?
p.s. Все это мне нужно для того, чтобы максимально упростить и формализовать работу для третьих лиц(программистов), т.е. написать понятный API. Сам код реализации им виден не будет, будет только дан набор классов, где есть методы, которые делаю всю работу. Также будет дана подробная документация по этим методам с примерами.
p.p.s. Раньше немного работал с .NET и c#.