Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Problem z klasami
Niedowiarek
post
Post #1





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 28.04.2011

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


Witam, od niedawna doszedłem w książce do tematu OOP i szczerze mówiąc ledwo co go rozumiem ;/. Więc postanowiłem napisać jakiś banalny skrypt przy użyciu klas, i zobaczyć co da jaki wynik. No i napisałem, lecz ten kod nie działa, czy to dlatego że nie ma w nim konstruktora?

  1. <?php
  2.  
  3. class A
  4. {
  5. public $atrybut = 10;
  6.  
  7. $a = new A;
  8.  
  9. function Wyswietl($atrybut);
  10. {
  11. echo $atrybut;
  12. }
  13. }
  14.  
  15. $a->Wyswietl();
  16.  
  17. ?>


Ten post edytował Niedowiarek 1.06.2011, 11:40:19
Go to the top of the page
+Quote Post
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




  1. $this->atrybut
Go to the top of the page
+Quote Post
Niedowiarek
post
Post #3





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 28.04.2011

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


Dzięki, zapomniałem całkiem o tym, tylko że teraz mam coś takiego:

  1. <?php
  2.  
  3. class A
  4. {
  5. public $atrybut;
  6. public function Wyswietl($atrybut);
  7. {
  8. $this->atrybut = 10;
  9. echo $this->atrybut;
  10. }
  11. $a = new A;
  12. }
  13. $a->Wyswietl();
  14.  
  15. ?>


I błąd

  1. Fatal error: Non-abstract method A::Wyswietl() must contain body in C:\wamp\www\index.php on line 6


Jakiś sugestie? Bo nie wiem po co miałbym tu używać typu abstract do metody ;/

Ten post edytował Niedowiarek 1.06.2011, 11:48:01
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




To są błędy składniowe. Zainstaluj IDE ze sprawdzaniem składni. Masz średnik na końcu definicji metody.
Go to the top of the page
+Quote Post
Niedowiarek
post
Post #5





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 28.04.2011

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


Okej, i jeszcze jedno. Nie za bardzo rozumiem, dlaczego tutaj wywala błąd.

  1. <?php
  2.  
  3. class A
  4. {
  5. public $atrybut;
  6. }
  7. $a = new A();
  8. $a->$atrybut = 10;
  9. echo $a->$atrybut;
  10.  
  11. ?>
Go to the top of the page
+Quote Post
wookieb
post
Post #6





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




A zaczniesz czytać manual?
http://pl2.php.net/manual/pl/language.oop5.basic.php
Go to the top of the page
+Quote Post
Niedowiarek
post
Post #7





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 28.04.2011

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


Po co mi manual, skoro ten przykład co wcześniej napisałem to wziąłem z książki "PHP i MySQL Vad. Prof. wyd. IV". I skoro nie działa, to mam się z niej nie uczyć?
Go to the top of the page
+Quote Post
wookieb
post
Post #8





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Cytat(Niedowiarek @ 1.06.2011, 13:10:03 ) *
Po co mi manual, skoro ten przykład co wcześniej napisałem to wziąłem z książki "PHP i MySQL Vad. Prof. wyd. IV". I skoro nie działa, to mam się z niej nie uczyć?

Skoro tak twierdzisz to upewnij się na 100% czy w książce ta linijką
  1. $a->$atrybut = 10;

wygląda tak jak masz czy też tak
  1. $a->atrybut = 10;

Bo następnym razem nie będziemy Cię odsyłać do manuala za brak podstaw.
Go to the top of the page
+Quote Post
Niedowiarek
post
Post #9





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 28.04.2011

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


ooo działa. Dzięki wielkie, i się już nie irytuj bo pewnie będę miał pare pytań odnośnie klas to muisz być wytrzymały (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 20:42