Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Wartość zmiennej z klasy do klasy
Takuro
post 20.03.2015, 20:21:45
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 3.04.2011

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


Witam, mam przykładowo klasę:
  1. class Test1
  2. {
  3. public $txt;
  4.  
  5. public function TestowaMetoda()
  6. {
  7. //łacze sie z bazą i pobieram dane...
  8. $txt = mysql_fetch_assoc($wyniki);
  9. }
  10. }


Potem mam drugą klase Test2
  1. class Test2 extends Test1
  2. {
  3. //tutaj jakies deklaracje i metody
  4. function Costam()
  5. {
  6. echo parent::$txt['wlasciciel';
  7. }
  8. }


No i nie da rady, próbowałem używać magicznej metody __get lecz też nic. Mógłby mi ktoś powiedzieć jak przekazać taką tablice lub zmienną?
Go to the top of the page
+Quote Post
slash^
post 20.03.2015, 20:27:55
Post #2





Grupa: Zarejestrowani
Postów: 278
Pomógł: 36
Dołączył: 9.04.2003
Skąd: Płock

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


  1. class Test1
  2. {
  3. public $txt;
  4.  
  5. public function TestowaMetoda()
  6. {
  7. //łacze sie z bazą i pobieram dane...
  8. $this->txt = mysql_fetch_assoc($wyniki);
  9. }
  10. }


Potem mam drugą klase Test2
  1. class Test2 extends Test1
  2. {
  3. //tutaj jakies deklaracje i metody
  4. function Costam()
  5. {
  6. echo $this->txt;
  7. }
  8. }


[/quote]

Ten post edytował slash^ 20.03.2015, 20:28:42


--------------------
d(^^)b
Go to the top of the page
+Quote Post
Takuro
post 20.03.2015, 23:09:02
Post #3





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 3.04.2011

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


No właśnie coś mi nie wyświetla w tej drugiej klasie danych z tablicy txt ;/
Go to the top of the page
+Quote Post
johny_s
post 20.03.2015, 23:28:39
Post #4





Grupa: Zarejestrowani
Postów: 594
Pomógł: 122
Dołączył: 17.07.2005
Skąd: P-na

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


Pokaż wywołania
Go to the top of the page
+Quote Post
Takuro
post 21.03.2015, 09:24:27
Post #5





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 3.04.2011

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


Kod:

  1. <?php
  2.  
  3. class Test2
  4. {
  5. public $tablica;
  6.  
  7. public function metodA()
  8. {
  9. $q = mysql_connect('localhost', 'admin', '123') or die("Padl serwer");
  10. $q = mysql_select_db('magazyny') or die('Padla baza');
  11. $wyniki = mysql_query('SELECT * FROM pracownicy ORDER BY `id` DESC');
  12. $this->tablica = mysql_fetch_assoc($wyniki);
  13. }
  14.  
  15. function __construct()
  16. {
  17. $this->metodA();
  18. }
  19.  
  20. }
  21.  
  22. class Test1 extends Test2
  23. {
  24. private $zmienna;
  25.  
  26. function __construct()
  27. {
  28. $this->zmienna = 5;
  29. }
  30.  
  31. function testowaMetoda()
  32. {
  33. echo $this->zmienna;
  34. }
  35.  
  36. function metodaDruga()
  37. {
  38. echo parent::$this->tablica['imie'];
  39. }
  40. }
  41.  
  42. $t = new Test1();
  43. $t->testowaMetoda();
  44. ?>
Go to the top of the page
+Quote Post
Forti
post 21.03.2015, 09:34:27
Post #6





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


T->zmienna. Na samym końcu da tobie 5. Przy dziedziczeniu nie musisz używać patent:: I chyba nawet nie powinieneś.


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
slash^
post 21.03.2015, 09:41:48
Post #7





Grupa: Zarejestrowani
Postów: 278
Pomógł: 36
Dołączył: 9.04.2003
Skąd: Płock

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


Wywołując parent:: możesz odwołać się do metody nadpisanej w klasie Test1, czyli __construct.

Jezeli w klasie Test1 dasz :
  1. function __construct()
  2. {
  3. parent::_construct();
  4. $this->zmienna = 5;
  5. }
  6.  
  7. function metodaDruga()
  8. {
  9. echo $this->tablica['imie'];
  10. }


powinno zadziałać.


--------------------
d(^^)b
Go to the top of the page
+Quote Post
NickOver
post 21.03.2015, 09:56:49
Post #8





Grupa: Zarejestrowani
Postów: 332
Pomógł: 10
Dołączył: 13.03.2014
Skąd: Bydgoszcz

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


Możesz to jeszcze zrobić nie rozszerzając klasy. Mianowicie stworzyć metodę:
  1. public function getTablica($element){
  2. return $this->tablica[$element];
  3. }

Potem tylko musisz się do tego odwołać
  1. $element = $objektTest1->getTablica('imie');
Go to the top of the page
+Quote Post
Takuro
post 21.03.2015, 22:49:29
Post #9





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 3.04.2011

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


Wszystkie tutaj opcje nie działają ;/ Jak już udało się wywołać w konstruktorze klasy Test1 konstruktor z klasy Test2 to daje mi to tylko efekt wypisania zmiennej a dalej nie mogę jej w klasie Test1 użyć do innych celów np sprawdzenie w warunku itp. Ktoś może ma jakiś inny działający sposób? Bo siedze troche na tym sporo i dalej nie wiem jak w klasie Test1 z dziedziczeniem po klasie Test2 użyć danych zapisanych w tablicy "tablica" z metody "metodA"(z klasy Test2) ';/
Go to the top of the page
+Quote Post
Forti
post 21.03.2015, 23:23:05
Post #10





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


Masz błąd w linijce 4 - brakuje średnika...

Pokaż kod.


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
com
post 21.03.2015, 23:45:00
Post #11





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


http://ideone.com/0l21QA

Jak was czytam to przeraża mnie, pracujecie z obiektówką i takich podstaw nie znacie wink.gif

Mogłeś również użyć DI smile.gif

http://ideone.com/DiWhQ0

http://ideone.com/G4h8Ad
Go to the top of the page
+Quote Post
Takuro
post 22.03.2015, 09:44:58
Post #12





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 3.04.2011

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


Dzięki com.
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: 15.07.2025 - 17:46