![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 131 Pomógł: 0 Dołączył: 28.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Problem wyglada następująco:
mam sobie interfejs, wygląda mniej więcej tak:
problem jest z funkcją prepare, a dokładniej z oznaczeniem jako private...
pluje mi: Cytat Fatal error: Access type for interface method db_interface::prepare() must be omitted in zmieniając na public problem znika... jak rozwiązać problem? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 359 Pomógł: 1 Dołączył: 16.04.2006 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Nie rozumie, po co w interfejsie cos do czego nie bedzie dostępu z zewnątrz. Interfejs to 'cos' do komunikowania sie z obiektem, sowjego rodzaju "bramki" którędy wchodzą i wychodzą dane z obiektu, a skoro coś nie może być "bramką" nie może zostać zdefiniowane jako interfejs. Zawsze możesz zrobić klase abstrakcyjną jako rodzica i metode abstrakcyjną dać, wtedy, każdy kto dziedziczy musi ją nadpisać.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 131 Pomógł: 0 Dołączył: 28.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
generalnie chodzi mi o to, zeby nie można było się bezpośrednio w kodzie odwołać do funkcji prepare(
stąd prywatność tej funkcji- natomiast jeśli w interfejsie nie zadeklaruję typu (czyli de facto zostawie jako publiczną), a w kodzie ustawie jako private to zaraz zacznie pluć, że jest niezgodne z interfejsem... |
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
zdzichu: interfejs to zestaw metod za pomoca ktorych inne obiekty komunikuja sie z obiektem implementujacym ten interfejs.
Sama implementacja interfejsu (sposob jego wykonania -- czyli m.in. metody prywatne) nie jest wazny dla tych pozostalych obiektow. Po prostu w ogole nie deklaruj prepare() w interfejsie tylko w klasach jako prywatna. Klasa moze zawierac tez metody nie znajdujace sie w interfejsie, ktory implementuje. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 270 Pomógł: 0 Dołączył: 15.06.2003 Ostrzeżenie: (0%) ![]() ![]() |
dawno nie pisałem w php ale zobacz protected.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 18.09.2025 - 17:43 |