Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Nauka klas - metody statyczne
d4ng
post
Post #1





Grupa: Zarejestrowani
Postów: 191
Pomógł: 4
Dołączył: 7.03.2010

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


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. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
kropamk
post
Post #2





Grupa: Zarejestrowani
Postów: 156
Pomógł: 12
Dołączył: 30.11.2011
Skąd: Gdańsk

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


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.

Ten post edytował kropamk 16.09.2013, 19:33:12
Go to the top of the page
+Quote Post
Crozin
post
Post #3





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


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.
Go to the top of the page
+Quote Post

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: 6.10.2025 - 21:08