![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 459 Pomógł: 26 Dołączył: 1.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie.
Rozpocząłem naukę PHP OOP i jak to zwykle bywa, napotkałem problem i nie wiem o co chodzi. Otóż mam klasą:
Przy każdej wartości (np. 200) wyrzuca, że "za szybko" a jak wiadomo przy 200 powinno działać normalnie. Proszę o pomoc. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Przede wszystkim takie użycie metod __set() i __get() nie ma praktycznego zastosowania, bo zmusza programistę do kontrolowania wszystkich właściwości klasy (trzeba znać dokładnie nazwy tych właściwości). Lepiej użyć, jak już zwracaliśmy uwagę, tablicy:
Poza tym źle napisałeś metodę __get(), gdybyś miał np. pole prywatne kolor i próbował pobrać wartość tego pola za pomocą $pojazd->kolor, to nadal otrzymasz wartość prędkości maksymalnej. No i w końcu to co stricte dotyczy OOP, settery i gettery (również te magiczne) nie są dobrym miejscem do kontrolowania wartości zmiennych. Powinna do tego raczej służyć osobna metoda np. sprawdzPredkosc(). I jeszcze jedno... takie przeciążone metody __set() i __get() raczej nie nadają się do powszechnego użytku (w ogóle nie pasują do klasy Samochod). Zdecydowanie lepszy przykład podał CuteOne - klasa Rejestr, która ma za zadanie przechowywać dowolne lecz istotne dane dla naszej aplikacji. W klasie Samochod lepiej będzie wykorzystać po prostu setPredkoscMaksymalna() i getPredkoscMaksymalna(). |
|
|
![]() ![]() |
![]() |
Aktualny czas: 13.10.2025 - 08:05 |