Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Dostęp do zmiennej z innej klasy, OOP
grind
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 17.11.2011

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


Ażeby nie rozwlekać zbytnio tematu:
  1. <?php
  2. class test1
  3. {
  4. public $testt="";
  5. function test1()
  6. {
  7. echo $this ->testt;
  8. }
  9. }
  10.  
  11. class test2
  12. {
  13. public $test1;
  14. function __construct()
  15. {
  16. $this -> test1 = new test1;
  17. }
  18.  
  19. function test2($msg)
  20. {
  21. $this -> test1 -> testt = $msg;
  22. }
  23. }
  24.  
  25. $test1=new test1;
  26. $test2=new test2;
  27.  
  28. $test2 -> test2('Test test!');
  29. $test1 -> test1();
  30. ?>


Problem w tym, że funkcja test2 nie zmienia zmiennej testt. Czytałem trochę w manualu, na wikibooks i googlu, i niestety nic nie mogłem znaleźć (albo słabo szukałem). Problem jest pewnie denny i można go rozwiązać w kilka sekund.

Z góry dziękuję za pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Dominis
post
Post #2





Grupa: Zarejestrowani
Postów: 77
Pomógł: 19
Dołączył: 13.02.2010

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


tak naprawde tworzysz trzy osobne obiekty.

Jeden obiekt test1, drugi obiekt test2 i trzeci obiekt w klasie test2(w konstruktorze) o nazwie test1.
i twoja funkcja test2 zmienia zmenna testt tylko ze w obiekcie stworzonym w klasie test2, a ty probujesz to odczytac w obiekcie stworzonym test1(ten pierwszy nie w klasie test2)

Jesli chcesz odczytac to możesz zrobić tak:

  1. <?php
  2. class test1
  3. {
  4. public $testt="";
  5. function test1()
  6. {
  7. echo $this ->testt;
  8. }
  9. }
  10.  
  11. class test2
  12. {
  13. public $test1;
  14. function __construct()
  15. {
  16. $this -> test1 = new test1;
  17. }
  18.  
  19. function test2($msg)
  20. {
  21. $this -> test1 -> testt = $msg;
  22. }
  23.  
  24. public function getTestt(){
  25. return $this->test1->testt;
  26. }
  27. }
  28.  
  29. $test1=new test1;
  30. $test2=new test2;
  31.  
  32. $test2 -> test2('Test test!');
  33. echo $test2 -> getTestt();
  34. ?>
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: 2.10.2025 - 18:26