PHP OOP kérdés? Leszármazott osztály tagfüggvényeinek elérése más oszályokból.
Sziasztok!
Adott 3 osztály. A, B, C
Az "A" osztály lényegtelen mit tartalmaz.
A "B" osztály leszármazottja az A osztálynak, melynek van egy tagfüggvénye pl.:"F".
A kérdés a következő: Hogyan tudom elérni "C" osztályból, "B" osztály "F" tagfüggvényét?Egy példával elmagyarázott választ nagyon megköszönnék!
Előre is köszi!
Reptile
■ Adott 3 osztály. A, B, C
Az "A" osztály lényegtelen mit tartalmaz.
A "B" osztály leszármazottja az A osztálynak, melynek van egy tagfüggvénye pl.:"F".
A kérdés a következő: Hogyan tudom elérni "C" osztályból, "B" osztály "F" tagfüggvényét?
class A{
//empty
}
class B{
function F(){
//ezt szeretném elérni
}
}
class C{
//itt kellene elérnem "B" oszt. "F" tagfüggvényét
}
Előre is köszi!
Reptile
Pl
B::F()
ha nem statikus, akkor reflectionben nézz körül
egyébként ha ilyet kell csinálnod, akkor rosszul tervezett a programod, szülőből nem szokás gyerek utasításait elérni... ha ilyen van, akkor inkább fordított a helyzet, és a mostani gyerek osztályodnak kéne szülőnek lenni
senki sem mondta, hogy C leszármazottja B-nek...
Ha nem statikus, akkor a C osztályban valahol csinálsz egy példányt, és akkor úgy.
$cObj = new B();
$cObj->F();
Megoldottam! :))
Megoldottam. Paraméterként átadtam...
hiba
helyesen
Köszi! :)
php5 oop eseten
-cs-
Sanyi
Jó látni, hogy azért még foglalkoztok a témával... :)
Át tudnátok írni az általam írt kódot, hogy helyes legyen, mert így eléggé össze zavart amit írtatok. Nem szeretném ha idővel lehalna az oldal a lámaságom miatt!?
Jelenleg PHP 5.1.4 fut nálam és semmi hibát nem tapasztaltam.
...
Amit meg erdemes itt megemliteni, hogy interface tipust is meg tudsz adni.
referencia
-cs-
Sanyi
:-)
Igen
Lehet...
Az meglehet, hogy rosszul tervezett.
"A" osztály az adatbázisal kommunikál.
"B" pedig egy konkrét műveletet hajt végre az adatbázison.
"C" adatokat ellenőriz, melyhez szükségem lenne "B" egy adott függvényére.
Sorry, hogy nem mellékelem a kódot, de többszáz sor kódot kellene beillesztenem, hogy érthető legyen. A Reflection ben nem találtam olyan példát, ahol egy szülőosztályból érnék el egy másik szülő leszármazottjának metodusát.
Mégegyszer köszi a választ! :)
Elnézést a kódban hibát követtem el!!!
class B extends A{
function F(){
//ezt szeretném elérni
}
}
Én néztem el..