Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Fatall Error :/
Forum PHP.pl > Forum > Przedszkole
Lee
Zaczynam dopiero zabawę z programowaniem obiektowym (czytam kurs na http://www.webcity.pl) i już mam problem worriedsmiley.gif
Stowrzyłem takie coś
  1. <?php
  2. $pi = 3.14;
  3.  
  4. class mojaklasa
  5. {
  6. public $wartosc;
  7.  
  8. public function pole_kola()
  9. {
  10. global $pi;
  11. $this -> wartosc = $pi * ($this -> wartosc * $this -> wartosc);
  12. }
  13.  
  14. }
  15.  
  16. $wartosc = new mojaklasa;
  17. $wartosc -> wartosc = '5';
  18.  
  19. echo 'Pole koła dla promienia ';
  20. echo $wartosc -> wartosc;
  21. echo ' wynosi ';
  22. $powierchnia = $wartosc -> pole_kola();
  23. echo $powierzchnia -> pole_kola();
  24.  
  25. ?>

i jak to wywołam to pokazuje mi
  1. <?php
  2. Pole koła dla promienia 5 wynosi
  3. Fatal error: Call to a member function pole_kola() on a non-object in /home/lee/public_html/php/index.php on line 23
  4. ?>

linia 23 to
  1. <?php
  2. echo $powierzchnia -> pole_kola();
  3. ?>

co robie źle ? wiem że to jedna wielka porażka to co napisałem ale z tego co wiem to najelpiej się czegoś nauczyć pisząć skrypty na podstawie tego co się przed chwilą przeczytało... worriedsmiley.gif
ARJ
to powinno być w ten sposób:
  1. <?php
  2. $pi = 3.14;
  3.  
  4. class mojaklasa
  5. {
  6. public $wartosc;
  7.  
  8. public function pole_kola()
  9. {
  10. global $pi;
  11. $this -> wartosc = $pi * ($this -> wartosc * $this -> wartosc);
  12. return $this->wartosc; // metoda zwraca wynik
  13. }
  14.  
  15. }
  16.  
  17. $wartosc = new mojaklasa;
  18. $wartosc -> wartosc = 5;
  19.  
  20. echo 'Pole koła dla promienia ';
  21. echo $wartosc -> wartosc;
  22. echo ' wynosi ';
  23. $powierzchnia = $wartosc -> pole_kola(); // w kodzie masz powierchnia, literowka
  24. echo $powierzchnia; // tutaj juz sie nie odwolujesz $powierzchnia -> pole_kola();
  25. ?>


PS. był już temat o tym aby unikać używania global.
Lee
ok dzięki jakoś sobie z tym poradziłem winksmiley.jpg
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.