Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zwracanie innego obiektu przez konstruktor.
crook
post
Post #1





Grupa: Nieautoryzowani
Postów: 2
Pomógł: 0
Dołączył: 26.10.2005

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


Czy istnieje jakaś możliwość w PHP5, aby konstruktor zwrócił inny obiekt? W PHP4 można było:
  1. <?php
  2.  class Foo
  3.  {
  4. function Foo()
  5. {
  6.  $this = new Foobar;
  7. }
  8.  }
  9. ?>

W PHP5 to nie działa.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
splatch
post
Post #2





Grupa: Zarejestrowani
Postów: 487
Pomógł: 7
Dołączył: 7.01.2004
Skąd: Warszawa

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


Nie ma technicznej możliwości w php (i podejżewam że w wielu innych jezykach również) by konstruktor coś zwracał. Dlaczego? Ponieważ konstruktor to specyficzna metoda tworzona w chwili inicjalizacji obiektu. Nie ma ona wpływu na jego tworzenie.
Gdy w php wykonasz $x = new DOMXML(); operator new zwraca instancję klasy nie biorąc pod uwagę konstruktora. Konstruktor jest wykonywany po to byś mógł przekazać w chwili tworzenia argumenty przydatne przy inicjalizacji obiektu.
Nie muszę wspominać, że jest to niezgodne z regułami OOP. Ponadto zapis, który wcześniej przedstawiłeś to jest podwujne new - czyli stworzenie drugiej instancji klasy w niej samej..
Niezależnei co by to miało być i czemu służyć możesz to rozwiązać ładniej. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
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: 9.10.2025 - 03:30