Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: statyczne
Forum PHP.pl > Forum > PHP > Object-oriented programming
Apo
Witam
Mam kilka pytan odnosnie statycznych. Mam 2 klasy. Pierwsza klasa jest parserem plików ini:
  1. <?php
  2. class ini_parser {
  3. const CONFIG_FILE = 'config.ini';
  4. static $dane;
  5.  
  6. public function __construct()
  7. {
  8. if(file_exists(self::CONFIG_FILE))
  9. $this->dane = parse_ini_file(self::CONFIG_FILE);
  10. else
  11. {
  12. echo 'Brak pliku konfiguracyjnego';
  13. }
  14. }
  15.  
  16. static public function __get( $dane ) // nie wiem czy tak mozna w statycznych metodach
  17. {
  18. if(array_key_exists($dane, self::dane))
  19. return self::dane[$dane]; // tu mi wywala błąd: Parse error: syntax error, unexpected '[' nie wiem czemu ;/
  20. else return 'Podany klucz nie istnieje';
  21. }
  22. }
  23. ?>

No i teraz jest plik drugiej klasy:
  1. <?php
  2. require_once('plik_z_klasą_ini.php');
  3. class foo {
  4. // ...
  5. // i teraz powiedzmy ze chce otrzymac jakas wartosc z pliku ini czyli robie:
  6. echo ini_parser::host; // no i teraz normalnie powinno mi wyswietlic klucz host ale tak sie nie dzieje (odpowiedzialna jest za to metoda __get
  7. // ...
  8. }
  9. ?>

I jeszcze pytanie odnośnie konstruktora. Czy przy takim użyciu jak pokazałem wykona sie konstrktor klasy parser_ini czy trzeba zainicjować obiekt ?
Pozdro
pawel_k
nie wykona sie. poza tym tworząc static public function __get( $dane ) nie mozesz sie do tego odwołać jak w przpadku publicznej magicznej funkcji __get(). i nie self::dane ale self::$dane.
poczytaj o singeltonie i zrob metodę do wyciagania zmiennych ...
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.