Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Nauka klas - metody statyczne
Forum PHP.pl > Forum > Przedszkole
d4ng
Witam serdecznie, dzisiaj mam problem z metodami statycznymi... wydaje mi się że zrobiłem wszystko ok ale zwraca mi taki komunikat

  1. Parse error: syntax error, unexpected T_STATIC in /home/xyz/domains/xyz.pl/public_html/nauka/php/klasy_cd.php on line 21


kod:

  1. <?php
  2. // klasy cd.
  3.  
  4. class A {
  5.  
  6. public $zmA;
  7. public static $zmB = "zawartosc zmiennej zmB"; //zmienna statyczna
  8.  
  9. public function getA(){ // metoda
  10. return $this->zmA; // zwraca wartośc zmiennej
  11. }
  12.  
  13.  
  14.  
  15. // ##### strat - metody statyczne ######
  16. public function getSelfB(){
  17. return self::$zmB;
  18. }
  19.  
  20. public function getStaticB(){
  21. return static::$zmB;
  22. }
  23.  
  24. public function getStaticMethod(){
  25. return static::staticTest();
  26. }
  27. public function staticTest(){
  28. return "zawartosc zmiennej zmB";
  29. }
  30. }
  31.  
  32. $obiekt = new A; // tworzymy nowy obiekt
  33. $obiekt->zmA = "zawartosc zmiennej zmA"; // definiujemy wartość zmiennej
  34. echo $obiekt->getA() ."<br/>"; // wywołujemy metode
  35.  
  36. echo $obiekt->getSelfB()."<br />";
  37. echo $obiekt->getStaticB()."<br />";
  38. echo $obiekt->getStaticMethod();
  39.  
  40. ?>
kropamk
nie widzę metod statycznych

metoda statyczna poprzedzona jest słowem static np. public static function() {}

Kolejna sprawa, której nie rozumiem (jeżeli się mylę to proszę o sprostowanie) to dlaczego do elementów statycznych odwołujesz się przez egzemplarz klasy a nie samą klasę , po co tworzyć obiekt?

Metody statyczne mają zasięg klasy.
Crozin
Linia #21 w Twoim kodzie to ta sama linia co w załączonym kodzie? Użyłeś tam late static bindings, a ten element języka dostępny jest od PHP 5.3.0.
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.