Autor Zpráva
honky tonk
Profil *
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
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?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: