Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Tworzenie obiektu klasy potomnej w rodzicu<idzie tak?>
conmar
post 13.01.2009, 21:09:00
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 2
Dołączył: 29.12.2008

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


Witam,
Pwiedzmy, że mam coś takiego:

Kod
class A {

protected $var;
protected $event;

    public function __construct() {
        $this->event = new B();
        echo $this->event->func();
    }
}

class B extends A {
    
    public function func() {
        $this->var = "dziala";
        return $this->var;
    }
}

$obj = new A;


Chodzi o to, że chce stworzyć obiekt klasy potomnej w rodzicu, ale ten kod nie działa(nic nie wyświetla).Mógłby ktoś nakierować mnie co robię źle.
Go to the top of the page
+Quote Post
starach
post 13.01.2009, 21:18:47
Post #2





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Przenieś inicjalizację zmiennej klasowej event do innej metody i uruchamiaj ręcznie.
Zastanów się po kolei jak jest to wywoływane. To że nie zdefiniowałeś konstruktora w klasie B nie znaczy że nie jest on wykonywany.
Owszem jest wykonywany tylko że z klasy rodzica.

  1. <?php
  2. class A {
  3.  
  4. protected $var;
  5. protected $event;
  6.  
  7.    public function __construct() {
  8.        $this->event = new B();
  9.        echo $this->event->func();
  10.    }
  11. }
  12.  
  13. class B extends A {
  14.    public function __construct() { }
  15.    public function func() {
  16.        $this->var = "dziala";
  17.        return $this->var;
  18.    }
  19. }
  20. ?>
Spróbuj tak.
Go to the top of the page
+Quote Post
conmar
post 13.01.2009, 21:32:26
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 2
Dołączył: 29.12.2008

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


Dzięki serdeczne, już załapałem w czym rzecz.
Go to the top of the page
+Quote Post
starach
post 14.01.2009, 00:00:32
Post #4





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Sprawdź jeszcze swoje raportowanie błędów bo kod z pierwszego postu powinien generować fatal error i wyświetlać informację o zapętleniu.
Nie wiem czy to pomoże, ale chyba tylko tutaj może tkwić problem.
  1. <?php
  2. ?>
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 24.04.2024 - 00:14