Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: metoda statyczna o co chodzi? jak i gdzie implementować?
Forum PHP.pl > Forum > PHP > Object-oriented programming
atomp3
Jak w temacie może mi ktoś wyjaśnić na jakimś prostym przykładzie i czy warto implementować do prostego CMSa?
dr_bonzo
  1. <?php
  2. class Klasa
  3. {
  4. public static function metodaStatyczna(){}
  5.  
  6. public function metodaZwykla(){}
  7. }
  8.  
  9. $k = new Klasa();
  10. $k->metodaZwykla(); // mozna ja wywolac tylko na obiekcie
  11.  
  12.  
  13. Klasa::metodaStatyczna(); // wywoluje sie ja na klasie
  14. ?>



Cytat
czy warto implementować do prostego CMSa?

Zle zadane pytanie. To zalezy co i jak implementujesz, czy da sie to zrobic bez metody statycznej itp.
atomp3
sorry ale jestem laikiem i nie widze za bardzo zastosowania i roznicy smile.gif moze jakis przyklad?
Cysiaczek
dr_bonzo ma rację - ma to znaczenie w samym akcie programowania a nie pisania CMS'a.
Przykład? Proszę - uproszczony

  1. <?php
  2. class DB{
  3.  
  4. static function getInstance($dsn){ //zalozmy, ze oczekujemy po prostu nazwy 
  5.  return new $dsn();
  6. }
  7. }
  8.  
  9. class mysql extends DB{}
  10. class pgsql extends DB{}
  11.  
  12. //i teraz
  13.  
  14. $db=Db::getInstance('mysql');
  15. $db->query();
  16. ?>


I już masz przykład zastosowania metody statycznej do pozyskania sterownika dla bazy danych na podstawie stringu.
Oczywiście powinno to być troszkę bardziej skomplikowane snitch.gif

Pozdrawiam.
batman
Metody statyczne można wywoływać bezpośrednio z klasy, bez tworzenia jej egzemplarza.
  1. <?php
  2. class Foo
  3. {
  4. public static Bar() {
  5. /*kod metody*/
  6. }
  7. }
  8. // wywolanie metody statyczniej
  9. Foo::Bar();
  10. // niepoprwany przyklad
  11. $obj = new Foo();
  12. $obj->Bar(); // BLAD!
  13. ?>


Statyczne metody stosuje się wtedy, jeśli chce się ograniczyć ilość instancji danego obiektu lub jeśli tworzysz klasę zawierającą luźno powiązane metody, tzw "helpery".

Najlepszym przykładem zastosowania metody statycznej jest wzorzec projektowy Singleton.
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.