Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Fatall Error :/, Call to a member function
Lee
post
Post #1





Grupa: Zarejestrowani
Postów: 319
Pomógł: 0
Dołączył: 11.04.2006
Skąd: Chojnów

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


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


--------------------
Nie pomagam w sprawach php na GG i PW od tego jest forum!
Go to the top of the page
+Quote Post
ARJ
post
Post #2





Grupa: Zarejestrowani
Postów: 453
Pomógł: 22
Dołączył: 20.09.2004
Skąd: Kraków - NH -

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


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.

Ten post edytował ARJ 26.07.2006, 21:26:49


--------------------
Warsztat: Windows 7 Pro 64bit | Apache 2.2 | PHP 5.2 | MySQL 5.0 | PHPmyadmin 2.6.4
Go to the top of the page
+Quote Post
Lee
post
Post #3





Grupa: Zarejestrowani
Postów: 319
Pomógł: 0
Dołączył: 11.04.2006
Skąd: Chojnów

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


ok dzięki jakoś sobie z tym poradziłem winksmiley.jpg

Ten post edytował Lee 26.07.2006, 21:27:42


--------------------
Nie pomagam w sprawach php na GG i PW od tego jest forum!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 14:47