Autor | Zpráva | ||
---|---|---|---|
honky tonk Profil * |
#1 · Zasláno: 23. 12. 2013, 17:37:46
Mám třídu Results a all. třída all je podtřídou Results. Dělám to takto
class Results{ public $search, $data, $all, $single, $classNames; function __construct() { $this->search = New Search(); $this->all = New all(); } ... } Nyní chci vytvořit třídu single, která má být podtřídou třídy Results, ale má mít metodu get, která bude volána skrze $results->single->get() a má vrátit první výsledky z Results->all. Pozn. all není pole, jsou tam členi, které jsou pole a z nich chci vytáhnout vždy první položku a to dát do pole které bude v single. Mám toto: class single { private $Results; public function get(){ $this->all->ids[0]; } function __contruct() { } } Problém mám s tím, že nevím jak zpřístupnit rodiče třídy single. Pomocí $this to dělat nemohu, to odkazuje na třídu Single. Mám rodiče předat přes get() ? Jako $results->single->get($results) ?
Jsem z toho trochu zmatený. |
||
Tori Profil |
#2 · Zasláno: 23. 12. 2013, 20:42:00
honky tonk:
„Jsem z toho trochu zmatený.“ Nejste sám - tou "podtřídou" označujete dědičnost, nebo kompozici? (Píšete o zpřístupnění rodiče, ale přitom kód vypadá jako skládání/kompozice.) Pokud myslíte kompozici, a pokud to je nějaká kolekce stejných prvků, tak bych použila třeba něco jako: $results->getAll() - vrátí celou kolekci (= třídu All , v níž je v nějakém poli uložena min.jedna instance Single .)
$results->getSingle($index = 0) - vrátí n-tý prvek kolekce, interně volá třeba $this->all->getItem($index) .
Co je to za objekty? „all není pole, jsou tam členi, které jsou pole a z nich chci vytáhnout vždy první položku a to dát do pole které bude v single.“ Něco podobného funkci array_column? |
||
Časová prodleva: 10 let
|
0