Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z klasami
Forum PHP.pl > Forum > Przedszkole
Niedowiarek
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. ?>
wookieb
  1. $this->atrybut
Niedowiarek
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 ;/
wookieb
To są błędy składniowe. Zainstaluj IDE ze sprawdzaniem składni. Masz średnik na końcu definicji metody.
Niedowiarek
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. ?>
wookieb
A zaczniesz czytać manual?
http://pl2.php.net/manual/pl/language.oop5.basic.php
Niedowiarek
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ć?
wookieb
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.
Niedowiarek
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 tongue.gif
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.