Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Pierwsza Klasa
Grafnastyk
post
Post #1





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 25.08.2017

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


Witam, czy mógłby mi ktoś wyjaśnić dlaczego moja funkcja use_monster zwraca tylko pierwszą zmienną? Domyślam się, że błąd jest banalny, ale nigdzie nie mogę znaleźć rozwiązania a błędu nie wyrzuca mi żadnego.

  1. <?php
  2.  
  3. class Monster
  4. {
  5. public
  6. $name,
  7. $hp,
  8. $def,
  9. $atk;
  10.  
  11. public function Create_monster($m_name, $m_hp, $m_def, $m_atk)
  12. {
  13. $this->name = $m_name;
  14. $this->hp = $m_hp;
  15. $this->def = $m_def;
  16. $this->atk = $m_atk;
  17.  
  18. }
  19.  
  20. public function use_monster()
  21. {
  22. return $this->name;
  23. return $this->hp;
  24. return $this->def;
  25. return $this->atk;
  26.  
  27.  
  28. }
  29.  
  30. }
  31.  
  32. $monster1 = new Monster;
  33.  
  34. $monster1->Create_monster('Troll',100,100,100);
  35.  
  36. echo $monster1->use_monster();
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Boshi
post
Post #2





Grupa: Zarejestrowani
Postów: 342
Pomógł: 15
Dołączył: 30.08.2011

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


"Troche.." on zatonął.

prefixów w postaci kresek się nie używa, akcesory nie są potrzebne zawsze, przykład Value obiect..
Go to the top of the page
+Quote Post
leonpro778
post
Post #3





Grupa: Zarejestrowani
Postów: 146
Pomógł: 19
Dołączył: 1.03.2012

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


Tak trochę to nie ja "popłynąłem" co WY mnie nie zrozumieliście.

Po pierwsze:
Nic nie pisałem o GETTERACH i SETTERACH. To, że użyłem nazwy GET i SET wynika tylko właśnie z tego, że w jakiś sposób trzeba zmienną w pewien sposób "zmodyfikować" i do tego służy metoda, którą nazwałem sobie SET (popatrzcie na przykład jaki podałem w nazewnictwie). Mój błąd, że nie napisałem poprawnie.

Po drugie:
Prefiks w postaci _ przed zmienną ma określać WIDOCZNOŚĆ(IMG:style_emoticons/default/questionmark.gif) Gdzie ja tak napisałem? Napisałem tylko, że pola powinny być prywatne a metody publiczne. Oczywiście taki znak przed zmienną pomaga w późniejszej identyfikacji zmiennej ale nigdzie nie napisałem, że _ zmienia widoczność.

Ten post edytował leonpro778 10.12.2017, 09:18:37
Go to the top of the page
+Quote Post
SmokAnalog
post
Post #4





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Cytat(leonpro778 @ 10.12.2017, 08:51:07 ) *
Tak trochę to nie ja "popłynąłem" co WY mnie nie zrozumieliście.

Poczytałeś o dobrych nawykach, ale nie doczytałeś, że trzeba je stosować z głową. Getterów i setterów się używa tylko tam, gdzie są potrzebne. A z tym dolnym podkreśleniem to niektórzy mają taką zasadę, ale moim zdaniem jest idiotyczna. A już mówić o niej jak o jakiejś prawdzie objawionej to jakiś kosmos.

Ten post edytował SmokAnalog 10.12.2017, 13:15:13
Go to the top of the page
+Quote Post
leonpro778
post
Post #5





Grupa: Zarejestrowani
Postów: 146
Pomógł: 19
Dołączył: 1.03.2012

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


Cytat(SmokAnalog @ 10.12.2017, 13:14:36 ) *
Poczytałeś o dobrych nawykach, ale nie doczytałeś, że trzeba je stosować z głową.

Co jest błędnego w moim rozumowaniu?

Cytat(SmokAnalog @ 10.12.2017, 13:14:36 ) *
Getterów i setterów się używa tylko tam, gdzie są potrzebne.

Wyjaśnijmy jedno, czym dla Ciebie jest:
getAttack() {
return $this->_att;
}

Cytat(SmokAnalog @ 10.12.2017, 13:14:36 ) *
A z tym dolnym podkreśleniem to niektórzy mają taką zasadę, ale moim zdaniem jest idiotyczna.

Framework Zend - tam długo stosowali taką zasadę. Czy ja wiem czy jest to taka idiotyczna zasada?(IMG:style_emoticons/default/questionmark.gif)

Cytat(SmokAnalog @ 10.12.2017, 13:14:36 ) *
A już mówić o niej jak o jakiejś prawdzie objawionej to jakiś kosmos.

Heh, czy ja pisałem o jakiejś prawdzie objawionej?
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: 5.10.2025 - 17:01