Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Klasa i jej pola
Forum PHP.pl > Forum > Przedszkole
pjamalia
Witam

Jestem początkujący w PHP jeżeli chodzi o obiektowość. Proszę o pomoc. Zrobiłem sobie taką banalną klasę i jak mogę zadeklarować pola i ustawić ich wartości w konstruktorze żeby metoda wywołana w pliku tej klasy zadziałała. Oto klasa:

  1. <?php
  2. class Licznik
  3. {
  4. // właściwości
  5. public $qwe;
  6. public $nazwa_pliku;
  7. // konstruktor
  8. public function _construct()
  9. {
  10. $this->qwe=0;
  11. $this->nazwa_pliku = "licznik.txt";
  12. }
  13. // metody, funcjie
  14. function Plik_zapis($licznik)
  15. {
  16. $nazwa_pliku = "licznik.txt";
  17. $plik = fopen($nazwa_pliku,"w+");
  18. //rewind($plik);
  19. $licznik++;
  20. fwrite($plik, $licznik);
  21. fclose($plik);
  22. //echo "Licznik utworzony";
  23. }
  24. function Plik_odczyt()
  25. {
  26. $nazwa_pliku = "licznik.txt";
  27. $plik = fopen($nazwa_pliku,"r");
  28. //fread($plik, 1024);
  29. while(!feof($plik))
  30. {
  31. $linia = fgets($plik,1024);
  32. echo "Licznik odwiedzin na tej stronie: ".$linia;
  33. Plik_zapis($linia++);
  34. }
  35. fclose($plik);
  36. }
  37.  
  38. function Spr_plik()
  39. {
  40. $nazwa_pliku = "licznik.txt";
  41. if(!file_exists($nazwa_pliku))
  42. {
  43. $qwe++;
  44. Plik_zapis($qwe);
  45. }
  46. else
  47. {
  48. Plik_odczyt();
  49. }
  50. }
  51. }
  52. ?>


Oto plik w którym wywołuję metodę klasy:
  1. // Przywołanie z klasy LICZNIK
  2. require_once('class.LICZNIK.php');
  3. $licznik = new Licznik();
  4. $licznik->qwe=0;
  5. $licznik->Spr_plik();


Jak uruchamiami to wywala mi taki błąd:

Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in c:\usr\krasnal\www\galeria\class.LICZNIK.php on line 6

dzięki i czekam na pomoc
wookieb
Raz masz tak
  1. $this->nazwa_pliku = "licznik.txt";


A raz tak
  1. $nazwa_pliku

Zdecyduj się. Poprawna jest forma 1. Ale chyba najpierw manual dotyczący klas warto by było przejrzeć co nie?
Crozin
1) Używasz PHP4 (zamiast 5)
2) W metodach Plik_* zamiast odnośić się pól klasy ($this->qwe/nazwa_pliku) tworzysz zmienne lokalne i operujesz na nich - a tego chyba nie chciałeś.
pjamalia
Dzięki, już poprawiłem:

  1. <?php
  2. class Licznik
  3. {
  4. // właściwości
  5. var $qwe;
  6. var $nazwa_pliku;
  7. // konstruktor
  8.  
  9. function _construct()
  10. {
  11. $this->qwe=0;
  12. $this->nazwa_pliku = "licznik.txt";
  13. }
  14. // metody, funcjie
  15. function Plik_zapis($licznik)
  16. {
  17. $nazwa_pliku = "licznik.txt";
  18. $plik = fopen($nazwa_pliku,"w+");
  19. //rewind($plik);
  20. $licznik++;
  21. fwrite($plik, $licznik);
  22. fclose($plik);
  23. //echo "Licznik utworzony";
  24. }
  25. function Plik_odczyt()
  26. {
  27. $nazwa_pliku = "licznik.txt";
  28. $plik = fopen($nazwa_pliku,"r");
  29. //fread($plik, 1024);
  30. while(!feof($plik))
  31. {
  32. $linia = fgets($plik,1024);
  33. echo "Licznik odwiedzin na tej stronie: ".$linia;
  34. $this->Plik_zapis($linia++);
  35. }
  36. fclose($plik);
  37. }
  38.  
  39. function Spr_plik()
  40. {
  41. $nazwa_pliku = "licznik.txt";
  42. if(!file_exists($nazwa_pliku))
  43. {
  44. $this->qwe++;
  45. $this->Plik_zapis($this->qwe);
  46. }
  47. else
  48. {
  49. $this->Plik_odczyt();
  50. }
  51. }
  52. }
  53. ?>
wookieb
Nie poprawiłeś.
phpion
Do tego nie _construct, a __construct (2 _ na początku).
cojack
I nie miałeś robić tak:

  1. $nazwa_pliku = "licznik.txt";


tylko tak:

  1. if(!file_exists($this->nazwa_pliku))


i nie:
  1. var $nazwa_pliku;


tylko

  1. private $nazwa_pliku;
phpion
Cytat(cojack @ 2.11.2009, 11:37:01 ) *
i nie:
  1. var $nazwa_pliku;


tylko

  1. private $nazwa_pliku;

Cytat(pjamalia @ 1.11.2009, 13:50:23 ) *
Jak uruchamiami to wywala mi taki błąd:

Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in c:\usr\krasnal\www\galeria\class.LICZNIK.php on line 6

Czytaj proszę cały temat jeśli chcesz udzielać pomocy.
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.