Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Libor 27. 03. 2014, 12:15:25
-
Ahoj, chtěl jsem se zeptat na jednu věc ohledně class. Když budu mít dvě class s názvem Drevo a Plast a potřebuji zavolat z class Drevo nějakou metodu v class Plast a taky opačně z class Plast zavolat nějakou metodu z class Drevo, jak to mám udělat? Poradí nkdo? Díky
class Drevo {
...
...
public function DataFromPlast() {
return ???;
}
...
...
}
class Plast {
...
...
public function DataFromDrevo() {
return ???;
}
...
...
}
-
Trochu zalezi na tom, jestli chces volat ze Dreva nejakou metodu Plastu, ktera nepracuje s daty nesenymi v nejake instanci Plastu. Treba kdybys mel v Plastu metodu RekniJakeJeDatum, tak to je metoda, ktera nezavisi na konkretni instanci Plastu, takze bys ji mohl deklarovat jako statickou a pak bys ji proste zavolal. Nevybavim si ted presnou syntax ale neco jako Plast.RekniJakeJeDatum(); .
Pokud bys volal metodu z Plastu, ktera zavisi na datech konkretni instance tridy Plast, pak ve Dreve pri volani te metody, musis mit tuto instanci k dispozici. Napriklad metoda RekniJakyJsiPlast. Bud by Drevo muselo mit vlastnost Plast kusPlastu a pak by metoda DataFromPlast volala kusPlastu.RekniJakyJsiPlast nebo metoda DataFromPlast bude mit parametr Plast nejakyPlast a pak v ni budes volat nejakyPlast.RekniJakyJsiPlast a metodu dataFromPlast budes volat jako nejakeDrevo.DataFromPlast(nejakyPlast).
-
Trochu zalezi na tom, jestli chces volat ze Dreva nejakou metodu Plastu, ktera nepracuje s daty nesenymi v nejake instanci Plastu. Treba kdybys mel v Plastu metodu RekniJakeJeDatum, tak to je metoda, ktera nezavisi na konkretni instanci Plastu, takze bys ji mohl deklarovat jako statickou a pak bys ji proste zavolal. Nevybavim si ted presnou syntax ale neco jako Plast.RekniJakeJeDatum(); .
Pokud bys volal metodu z Plastu, ktera zavisi na datech konkretni instance tridy Plast, pak ve Dreve pri volani te metody, musis mit tuto instanci k dispozici. Napriklad metoda RekniJakyJsiPlast. Bud by Drevo muselo mit vlastnost Plast kusPlastu a pak by metoda DataFromPlast volala kusPlastu.RekniJakyJsiPlast nebo metoda DataFromPlast bude mit parametr Plast nejakyPlast a pak v ni budes volat nejakyPlast.RekniJakyJsiPlast a metodu dataFromPlast budes volat jako nejakeDrevo.DataFromPlast(nejakyPlast).
Suhlasim, len opravim. Ma to byt Plast::RekniJakeJeDatum() v prvom pripade a v druhom pripade $obj->RekniJakyJsiPlast($plast); ak predtym napiseme $obj = new Plast;
Ale tiez je moznost si vytvorit napr. $plast cez $plast = new Plast, toto serializovat a ulozit do session a potom to v nejakej metode triedy Drevo unserializovat a objekt $plast pouzit.
-
Myslim, ze hladas toto:
http://www.php.net/manual/en/function.call-user-func-array.php