Autor Zpráva
hellmc
Profil
Ahoyte ..
Začínam s oop a nejak mi nejde dedičnosť tak, ako by som si predstavoval ....

Mám objekt "jadro" a objekt "hlava" (class hlava extends jadro)
v jadre mam atribut : "public $str_lmenu" a chcel by som s nim pracovat v class hlava,
malo by to byť len $this->str_lmenu ak sa nemylim,
keď vytvorím objekt
$j=new jadro();
$j->str_lmenu=array("nieco",...atd);
$x=new hlava();
$x->init();
keď potom skúsim var_dump($this->str_lmenu) z triedy hlava ... dostanem vždy NULL,
keď však zadám hodnotu pre $str_lmenu v triede jadro, alebo v jeho __construct, je to v poriadku
dá sa hodnota atribútu nastaviť tak ako je to vyššie, a používať túto v child triede ?

Dík za pomoc ...
Alphard
Profil
Nedá, takhle to v PHP nefunguje. Byť návrh třídy hlava dědí od jadro, jejich instance jsou oddělené.
Joker
Profil
Nicméně místo dědičnosti by v té situaci fungovalo skládání:

class Jadro {
  public $hlava;
  // …
}
//…

$jadro = new Jadro();
$jadro->hlava = new Hlava();
hellmc
Profil
Ďakujem ... páni
joe
Profil
Ještě lépe je závislost předsat, pokud je povinná, pak přes konstruktor, pokud ne, tak přes setter.

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: