Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Dziedziczenie
Forum PHP.pl > Forum > PHP
propage
Jak zrobić, aby moc miec wswolne zmienne dla kilku istancji danej klasy.
Chodzi to to, aby zmienne zdefiniowane w jedenj istancji klasy byly dostepne w drugiej instancji

  1. class abc
  2. {
  3. public $var;
  4.  
  5. function abc() { }
  6.  
  7. }
  8. class abcChild extends abc {
  9.  
  10. function abc() { }
  11. function set($var)
  12. {
  13. $this->var = $var;
  14. }
  15. function get()
  16. {
  17. echo $this->var;
  18. }
  19. }
  20. $abc = new abc();
  21.  
  22. $abc1 = new abcChild();
  23. $abc1->set('xxx');
  24. $abc2 = new abcChild();
  25. $abc1->get();
  26. $abc2->get();

Być może można to zrobić to przez dziedziczenie, w kazdym razie, chcę, aby ->get() w obu powyszych metodach zwrocilo "xxx", a nie tylko dla instancji abc1.
batman
Zastosuj zmienną statyczną.

  1. <?php
  2. class Foo
  3. {
  4. protected static $_zmienna = null;
  5.  
  6. public function set($value)
  7. {
  8. self::$_zmienna = $value;
  9. }
  10.  
  11. public function get()
  12. {
  13. return self::$_zmienna;
  14. }
  15. }
  16.  
  17. $o1 = new Foo();
  18. var_dump($o1->get()); // NULL
  19. $o1->set('aaa');
  20. var_dump($o1->get()); // aaa
  21. $o2 = new Foo();
  22. var_dump($o2->get()); // aaa
  23. $o2->set('bbb');
  24. var_dump($o2->get()); // bbb
  25. var_dump($o1->get()); // bbb
Wilk002
Ewentualnie można użyć klonowania. Nie mniej może być z tym czasami problem. winksmiley.jpg

http://php.net/manual/pl/language.oop5.cloning.php
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.