Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Tworzenie obiektu klasy potomnej w rodzicu<idzie tak?>
Forum PHP.pl > Forum > PHP > Object-oriented programming
conmar
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.
starach
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.
conmar
Dzięki serdeczne, już załapałem w czym rzecz.
starach
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. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.