Autor | Zpráva | ||
---|---|---|---|
CPBBT Profil * |
Na Trupíkově webu (http://blog.jakubmaly.cz/programovani/php/strankovani-v-php-a-mysql-pohodlne-a-univerzalne.aspx) je třída, která stránkuje vypis z databáze. Nemůžu pochopit jak lze v následující třídě volat metodu "prepareLink", která je defonovaná v jiné třídě.
Může mi to někdo vysvětlit? Díky abstract class PagerMode { //vypsani jednoho linku public $ParentPager; public $TargetedPage; public $PageCount; public function Link($page, $anchoringText, $cssClass) { return $this->ParentPager->prepareLink($page, $anchoringText, $cssClass); } Moderátor Majkl578: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
|
||
fuckin Profil |
#2 · Zasláno: 7. 1. 2010, 15:51:57 · Upravil/a: fuckin
abstract class PagerMode Všimni si slovíčka abstract, abstraktní třída se neimplementuje, ale dědí (nemůže sama vytvářet instance). Abstraktní třída je vždy pouze deklarována. EDIT :: Zde se volá třída ParentPager, tedy třída která tuto třídu dědí. - pěkná kravina co jsem napsal :) $this->ParentPager->prepareLink($page, $anchoringText, $cssClass); Abstraktní třída je podobná rozhraní, kde narozdíl od abstraktní třídy definuješ jen jakousi strukturu, názvy proměnných a názvy metod, nic víc. Kdyžtak se podívej třeba sem http://projektysipvz.gytool.cz/ProjektySIPVZ/Default.aspx?uid=240 |
||
CPBBT Profil * |
#3 · Zasláno: 7. 1. 2010, 16:08:44
fuckin:
No pořád jsem z toho zmatený. Přece v té třídě je "public $ParentPager" pouze proměnná a ne třída, jak píšeš. Aby to šlo tak volat, tak by ParentPage musela být instancí třídy, která definuje metodu prepareLink. Ale to není. N |
||
CPBBT Profil * |
#4 · Zasláno: 7. 1. 2010, 16:10:32
fuckin;
Jde to ještě nějak jinak vysvětlit? Díky |
||
fuckin Profil |
#5 · Zasláno: 7. 1. 2010, 17:56:02
CPBBT:
Dobrá, napsal jsem to špatně. ParentPager je pouze členská proměnná. Která však může být instancí některé třídy v třídě, která tuto abstraktní třídu volá. Musel bych prostudovat celý kód abych to řekl s jistotou. Na tomto fóru je to krásně vysvětleno, viz příspěvek od rudyment http://forum.builder.cz/read.php?14,2955408 |
||
Časová prodleva: 14 let
|
0