Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Strict Standards
likemandrake
post
Post #1





Grupa: Zarejestrowani
Postów: 175
Pomógł: 17
Dołączył: 23.06.2006

Ostrzeżenie: (0%)
-----


Witam

Mam taki mini problem, mam o to taki zestaw klas:

  1. <?php
  2. class A {
  3.   // Zestaw metod
  4. }
  5.  
  6. class B extends A {
  7.   // Dodatkowy zestaw metod
  8. }
  9.  
  10. abstract class C {
  11.   public function setObject(A $object) {
  12.      
  13.   }
  14. }
  15.  
  16. abstract class D extends class C {
  17.   public function setObject(B $object) {
  18.      
  19.   }
  20. }
  21.  
  22. class Concrete extends class D {
  23.  
  24. }
  25. ?>


Gdy działam na obiekcie klasy Concrete, php wywala mi taki komunikat:
Cytat
Strict Standards: Declaration of D::setObject() should be compatible with that of C::setObject() in [...]


Co o tym myślicie, czy nie jest to troszkę na wyrost? Wiadomo, co chciałem przez to osiągnąć... Jak do tego podejść tak w ogóle?

Pozdrawiam

Ten post edytował likemandrake 3.02.2009, 19:46:48
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


A czy przypadkiem klasy A i B nie mogłby implementować jakiegoś interfaceu, a metoda setObject mieć sygnaturę public setObject(myInterface)? Chyba, że te dwa obiekty mają robić coś zupełnie innego, ale wtedy możnaby zacząć się zastanawiać czy aby napewno to co robisz jest poprawne?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 01:19