| 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: 12 let
|
|||
0