Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]PHP sens funkcji...
Forum PHP.pl > Forum > Przedszkole
LoBo0sw
Przeglądam sobie php.pl http://php.pl/phppl/Wortal/Artykuly/PHP/Po...adowe-statyczne
by poczytac o OOP i mam następujące pytanie.
Jaki jest sens funkcji
  1. public function getName(){
  2. Return $this->name;
  3. }


Czy ona jest czy jej nie ma to wyświetla mi 012.
w zasadzie oprócz tego, że jest napisana, to nigdzie nie jest wykorzystana, więc po co w zasadzie ten getName() ? praser php go jakos wykorzystuje ?

Klasa:
  1. abstract class Dog{
  2. private static $nextId = 0;
  3. /* Identyfikator, który znajduje się na obroży, każdy pies powinien mieć unikalne id */
  4. private $id;
  5. private $name;
  6.  
  7. public function __construct($name){
  8. $this->name = $name;
  9. $this->setId();//ustawienie identifikatora
  10. }
  11.  
  12. public function getName(){
  13. Return $this->name;
  14. }
  15.  
  16. public function getId(){
  17. Return $this->id;
  18. }
  19.  
  20. private function setId(){
  21. $this->id = self::$nextId++;
  22. }
  23.  
  24. public static function getNextId(){
  25. return self::$nextId;
  26. }
  27. }
  28.  
  29. class Basset extends Dog{
  30. //jakieś metody specjalizujące
  31. }
  32.  
  33. $reksio = new Basset ('Reksio');
  34. echo $reksio->getId();//wyświetla "0"
  35. $edek = new Basset ('Edek');
  36. echo $edek->getId();//wyświetla "1"
  37. echo Dog::getNextId();//wyświetla "2"
szalek01
To jest tylko przykład. Zmienna jest private dlatego by ją zmienić (setName) lub pobrać (getName) używasz metod. W taki sposób zabezpieczasz swój obiekt Dog, kontrolujesz jakie zmienne i w jaki sposób są pobierane i zmieniane, wiąże się to bezpośrednio z pojęciem obiektowości, a w czasie programowania np w Symfony używasz tego cały czas.
webdice
Poczytaj o getterach i setterach. W skrócie chodzi o to, aby właściwości nie były publiczne. Settery czuwają nad tym aby w dana właściwość zawierała to co Ty chcesz (np. nazwę, a nie obiekt). Poczytaj zrozumiesz...
LoBo0sw
ok, ale w książkach na ogół tez sa takie deklaracje, i nie umiem pojąc po co są takie funkcje, skoro w zasadzie są deklarowane, a nigdzie nie używane. Rozumiem, że tylko bezpieczeństwo, tak ? Bo bez nich też skrypty działają.
Dopiero poznaję OOP więc prosze o wyrozumiełość wink.gif


@up:
ale tutaj czy to jest nazwane getNazwa czy pobierzNazwa nie ma znaczenia, a gettery i settery to chyba __set(), __get(), które tutaj nie są użyte, tak ?
webdice
Tu masz stosunkowo fajnie to opisane.

PS. Przyjęło się nazwy set* oraz get*, ale jak sobie to nazwiesz, to Twoja sprawa.
Niktoś
Poczytaj pod nazwą akcesory- pewnie zajdziesz wiele fajnych przykładów.
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.