Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Zmienianie wartości atrybutów obiektu
emSon
post 28.03.2015, 12:15:23
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 28.03.2015

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


Witam. Dosyć niedawno zacząłem uczyć się PHP. Niemal od razu nakierowałem swe kroki na programowanie obiektowe. Za źródło wiedzy służy mi "PHP i MYSQL. Vademecum Profesjonalisty, wydanie IV".
Tam jednak nie znalazłem nic o edytowaniu atrybutów obiektu w funkcji. Opiszę swój problem.

Mam abstrakcyjną klasę postać. W niej są podklasy , wymienianie ich nie ma większego sensu. Mam też funkcję fight zawartą w każdej podklasie. Mój zamysł polegał na tym, aby przy wywołaniu funkcji fight sprawdzić kto ma lepsze statystyki i wygranemu dodać doświadczenie. Jednak nigdzie nie mogę natrafić na to, jak modyfikować atrybuty innego obiektu, niż tego , którym wywołałem funkcję. Wiem ,że to dla wielu z was banalne, jednak dla mnie stanowi problem. Dzięki z góry za pomoc.

PS: To mój pierwszy post na forum, tak więc witam :D
Go to the top of the page
+Quote Post
nospor
post 28.03.2015, 12:17:42
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Z racji, ze nie uraczyles nas kodem, to strzelam:

$this->jakisobiekt->jakiespole = 'jakas wartosc';


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
emSon
post 28.03.2015, 12:27:23
Post #3





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 28.03.2015

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


Fakt, kod by się przydał. W komentarzu jest napisane o co mi chodzi.

  1. <?php
  2. abstract class hero{
  3. }
  4.  
  5. class warrior extends hero{
  6. public $hp = 100;
  7. public $def = 100;
  8. public $str = 100;
  9.  
  10. public function __construct($name){
  11. $this->name = $name;
  12. echo "Witaj dzielny wojowniku. Masz na imię $this->name, masz atrybuty o wartościach $this->hp $this->def $this->str <br />";
  13. }
  14.  
  15. public function upgrade(){
  16. if($this->exp < 100){
  17. $req = 100 - $this->exp;
  18. echo " Nie masz wystarczającej ilości punktów doświadczenia, aby ulepszyć postać. Brakująca ilość : $req";
  19. }
  20. }
  21.  
  22. public function fight($person){
  23.  
  24. // $person = objekt o nazwie $person;
  25. // echo "Chcesz walczyć z <imie obiektu o nazwie $person>";
  26. }
  27. }
  28.  
  29. $w1 = new warrior('Edek');
  30. $w2 = new warrior('Maciek');
  31.  
  32. ?>
Go to the top of the page
+Quote Post
nospor
post 28.03.2015, 12:32:51
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  1. public function fight($person){
  2.  
  3. echo "Chcesz walczyć z ".$person->name;
  4.  
  5. }

a name wypadaloby okreslic jako
public $name = '';


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
emSon
post 28.03.2015, 12:37:10
Post #5





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 28.03.2015

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


Wielkie dzięki. Sprawa, jak się okazuje, była banalnie prosta.
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: 18.06.2025 - 23:25