Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przeciążanie konstruktora
athabus
post
Post #1





Grupa: Zarejestrowani
Postów: 898
Pomógł: 48
Dołączył: 2.11.2005
Skąd: Poznań

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


Mam pytanie czy w php5 da się przeciążyć konstruktor? Generalnie wiem, że można przeciążać dowolną funkcję za pomocą __call, ale z konstruktorem jakos mi nie wychodzi (IMG:http://forum.php.pl/style_emoticons/default/mad.gif)

Próbowałem zarówno użyć __construct jak i NazwaKlasy przy przeciążaniu w __call i nic z tego. Czy ktos wie jak można przeciążyć konstruktor?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
ikioloak
post
Post #2





Grupa: Zarejestrowani
Postów: 416
Pomógł: 0
Dołączył: 8.01.2004

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


Nie wiem czy to jest optymalne rozwiazanie, ale dziala:
  1. <?php
  2.  
  3. class foo
  4. {
  5. public function __construct($p1,$p2,$p3,$p4)
  6. {
  7. if (is_array($p1)) 
  8. {
  9. $this->ConstructFromArray($p1);
  10. }
  11. else if ((is_string($p1))&&(is_string($p2)))
  12. {
  13. $this->ConstructFromUser($p1,$p2);
  14. }
  15. }
  16.  
  17. private function ConstructFromArray($array)
  18. {
  19. print_r($array);
  20. }
  21.  
  22. private function ConstructFromUser($title,$text)
  23. {
  24. print 'tytul:'.$title.' tresc:'.$tresc;
  25. }
  26. }
  27.  
  28.  
  29. $t = array(1,2,4);
  30. $foo = @new foo($t);
  31. $foo2 = @new foo('tytul newsa','tresc newsa');
  32.  
  33. ?>

Inna opcja to jest utworzenei jednej klasy abstrakcyjnej, pozniej 4 klasy gdzie kazda implementuje na swoj sposob konstruktor, i w zaleznosci od parametrow tworzyc obiekt danej klasy. Co o tym mysilsz?
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: 10.10.2025 - 10:03