Autor | Zpráva | ||
---|---|---|---|
Sunucuu Profil |
Dobré ráno,
je nějaký způsob jak v třídě Second vypsat variable z třídy First kromě toho, který mám uvedený? $this nechci používat, jelikož pak když je toho víc, tak se v tom člověk špatně orientuje, když má všude $this a pak ani neví, ze které rodičovské třídy to vlastně je... Ideální by bylo použít vypsání například tímto stylem (abych rozeznal, že to pochází z třídy First...: echo $first->variable; Ovšem to zase vyžaduje použití global $first; a to nechci... Jsou ještě jiné možnosti než použít $this a global? Děkuji. <?php Class First { public function __construct(){ $this->firstvariable = 'first'; } } $first = new First; Class Second extends First { public function __construct(){ parent::__construct(); echo $this->variable; } } $second = New Second; ?> Moderátor Alphard: Vkládej prosím kódy mezi značky [>pre] a [>/pre] (stačí kliknout na
![]() |
||
Bertram Profil |
#2 · Zasláno: 7. 4. 2012, 09:12:15
Sunucuu:
Ahoj, $this je proměnná zastupující objekt a pokud vzniká ze tříd, které jsou svázané dědičností, tak jde o závislost typu (potomek je určitý druh předka) a dle mého by jsi se neměl snažit rozlišovat v jaké z těch tříd je daná vlastnost deklarována. |
||
Sunucuu Profil |
#3 · Zasláno: 8. 4. 2012, 07:43:59
Bertram:
Chápu, právě, že i ve všech kódech jsem viděl použití pouze $this, ale já osobně když vidím delší kód a vidím tam milion proměnných, tak občas mě třeba zajímá z jaké třídy pochází a dohledávat to "ručně" je zbytečně časově náročné a dávat proměnné v každé třídě s nějakým identifikátorem (abych poznal z jaké pochází třídy), např názvy promměných typu $this->Fvariable (F = first), $this->Svariable (S = second) se mi zdá složité... Možná řeším hloupost a navrhuji to špatně, ale nějaké rozlišení by se mi hodilo... Opravdu žádná jiná možnost kromě $this-> a global se nenabízí? :) Děkuji. |
||
Nox Profil |
#4 · Zasláno: 8. 4. 2012, 09:05:55
Sunucuu:
Právě by to vůbec nemělo být potřeba. Jinak pokud máš IDE (Netbeans...), často stačí třeba ctrl+kliknout na proměnnou a skočí to na deklaraci. Tomu navrženému se říká "hungary notation" a není to doporučená možnost |
||
Sunucuu Profil |
#5 · Zasláno: 8. 4. 2012, 14:22:50
Ok dobře, děkuji za pomoc
|
||
Časová prodleva: 11 let
|
0