Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: static problem
Forum PHP.pl > Forum > PHP > Object-oriented programming
Dex1987
Witam, mam taki oto problem:

mam klase engine:

  1. <?php
  2. // engine.php
  3.  
  4. class engine {
  5.  
  6.  static public $_templates;
  7.  
  8.  public function __construct () {
  9.  
  10. $this -> _templates ();
  11.  
  12. echo 'engine: ' . $this -> _templates . '<br>'; //to zwraca: Object id #2
  13.  }
  14.  
  15.  public function _templates () {
  16.  
  17.  $this -> _templates = new templates ();
  18.  }
  19. }
  20. ?>


oraz druga klase access

  1. <?php
  2. //access.php
  3.  
  4. class access extends engine {
  5.  
  6.  public function __construct () {
  7.  
  8.  parent::_templates ();
  9.  }
  10.  
  11.  public function register () {
  12.  
  13.  echo 'access: ' . $this -> _templates; //to zwraca: Object id #
  14. }
  15. }
  16. ?>


i teraz chciabym zeby w obu klasach bylo zwracane Object id #2. Probowalem kombinowac cos z self ale dalej bylo to samo, albo wogole nie dzialalo.

pozdrawiam dex
Cysiaczek
  1. <?php
  2. class access extends engine {
  3.  
  4.  public function __construct () {
  5.  
  6. // parent::_templates (); //tak sie TY odnosisz
  7.  parent::__construct(); //a jak zrobisz tak, to działa :)
  8.  }
  9. ?>


Jeśli w klasie dziedziczącej jest konstruktor, to wywołanie kontruktora klasy bazowej z klasy dziedziczącej musi być dokonane ręcznie. Mówiąc bardziej po ludzku: Jeśli masz w obu klasach konstruktory, to w dziedziczącej zawsze na początku wywołuj parent::__construct(); Wtedy masz pewność, że oiekty będą prawidłowo zainicjowane.

Pozdrawiam.
Dex1987
dzieki, rozwiazalem troche inaczej ten prolem, ale Twoje rozwiazanie jest lepsze
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.