Kod
<?
class klasa{
function licz(&$w){$w=1;}
function tekst(){
self::licz($wynik);
print($wynik);
}
}
$a=new klasa();
$a->tekst();
?>
class klasa{
function licz(&$w){$w=1;}
function tekst(){
self::licz($wynik);
print($wynik);
}
}
$a=new klasa();
$a->tekst();
?>
Zasada dzialania jest taka:
Tworze obiekt na podstawie klasa, ktora zawiera metode 'tekst' wyswietlajaca wynik. Sam wynik naliczany jest za pomoca funkcji licz().
Wszystko dziala pieknie, ale sama fukcja licz nie jest w moim przypadku zawsze taka sama. Tzn tworzac obiekt $a (potem $b, potem $c) chcialbym moc zdefiniowac z nim fukcje licz() o osobna dla kazdego przypadku. Cala reszta klasy pozostaje bez zmian (a nie jest krotka).
Bardzo zalezy mi na tym aby nie wklepywac do programu 100 razy tej samej klasy w wersjach ze zmieniona tylko funkcja licz().
Z obiektowki raczkuje a chcac rozwiazac ten problem przychodza mi do glowy rozne pomysly:
1) a) tworze obiekt $a na podstawie klasy, ktora celowo nie zawiera fukcji licz
b) definiuje w stworzonym obiekcie funkcje licz() i mam w pelni funkcjonalny obiekt
2) Przed utowrzeniem obiektu $a nadpisuja fukcje licz w klasie
3) a) tworze kopię o nazwie klasa2 na podsatwie klasy (nie zawierajacej fukcji licz) dodajac do niej fukcje licz()
b) tworze obiekt $a na podstawie nowej klasa2
Wszystkie przypadki teoretycznie prowadza do celu, jednak nie wiem, ktore z nich sa mozliwe do wykonania w PHP. A jezeli nie jeden to ktory najlepiej wybrac?
Prosze o maja podpowiedz (kod) jak to zrealizowac.