Autor | Zpráva | ||
---|---|---|---|
Miri Profil * |
#1 · Zasláno: 8. 3. 2012, 12:04:29
Ahoj, chtěl bych se zeptat jak komunikovat mezi 2 třídami.
Mám třídu Menu a třídu Zbozi a z nějaké metody Zbozi bych chtěl volat metodu z třídy Menu jak toho dosáhnout když mám třídy načtené "vedle sebe"? Díky Míra |
||
Ugo Profil |
1. statické metody (globální přístup ke třídě, nikoliv k objektu)
<?php class Menu { function volejZbozi() { echo zbozi::rekniMiNeco(); } } class Zbozi { static function rekniMiNeco() { return "ahoj"; } } $menu = new Menu(); $menu->volejZbozi(); 2. global proměnná s instancí (v tomhle případě naprosto nedoporučuji) <?php class Menu { function volejZbozi() { global $zbozi; echo $zbozi->rekniMiNeco(); } } class Zbozi { function rekniMiNeco() { return "ahoj"; } } $zbozi = new Zbozi(); $menu = new Menu(); $menu->volejZbozi(); 3. asi nejlepší - předat si instanci v parametru (stylově řečeno DI) <?php class Menu { function volejZbozi(Zbozi $zbozi) { echo $zbozi->rekniMiNeco(); } } class Zbozi { function rekniMiNeco() { return "ahoj"; } } $zbozi = new Zbozi(); $menu = new Menu(); $menu->volejZbozi($zbozi); eh nějaké dlouhé, kdyžtak to asi smažu a taky koukám že volání tříd mám naopak, ale to nevadí :) |
||
Miri Profil * |
#3 · Zasláno: 8. 3. 2012, 13:15:40
Super to jsem potřeboval. Děkuji mnohokrát :-)
|
||
Časová prodleva: 12 let
|
0