![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 495 Pomógł: 245 Dołączył: 1.07.2009 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Cześć,
mam tu taki przykładzik z artykułu z lipca 2022 i nie rozumiem dlaczego autor podał parametry klasy przy tworzeniu obiektu. W artykule nie ma tego wyjaśnione, natomiast Visual Studio Code mówi mi przy tworzeniu obiektu, że klasa nie ma żadnego konstruktora, więc zostanie wywołana bez parametru. Ok, jasne, ale więc dlaczego podano te parametry? klasa:
Wywołanie:
W ogóle kiedy to sie odpali to wywala błąd: Kod Fatal error: Uncaught TypeError: GermanShepherd::getEyeColor(): Return value must be of type string, null returned in C:\xampp\htdocs\index.php:28 Stack trace: #0 C:\xampp\htdocs\index.php(91): GermanShepherd->getEyeColor() #1 {main} thrown in C:\xampp\htdocs\index.php on line 28
Ten post edytował sadistic_son 12.01.2023, 11:34:03 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 406 Pomógł: 73 Dołączył: 15.07.2014 Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli parametry a i b mają być niezmienne w całym cyklu życia obiektu, to zostaw konstruktor i wywal settery dla nich.
Metoda `setWynik` nic mi nie mówi, więc musisz zmienić jej nazwę - na np. `calculate`. Po kodzie widać, że dodajesz, więc może lepiej `calculateSum`? Co do gettera dla wyniku - zależy. Jeżeli operacje obliczenia są skomplikowane i czasochłonne, to przypisanie będzie dobrym rozwiązaniem. W innym przypadku, to metoda `calculate` powinna już coś zwracać. Można jeszcze zrobić tak, że `calculate` będzie metodą prywatną, a `getWynik` będzie mieć if w środku i sprawdzać czy `->wynik` nie jest pusty. Aczkolwiek to rozwiązanie łąmie trochę SOLID. Ten post edytował Salvation 13.01.2023, 09:38:55 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 10:04 |