login  Naam:   Wachtwoord: 
Registreer je!
 Forum

classes (Opgelost)

Offline M4RtNNN - 09/11/2009 18:44
Avatar van M4RtNNNNieuw lid hi, ik heb een class wat zou moeten werken, maar ik krijg een error

Fatal error: Call to undefined method Werknemer::Persoon() in D:\PHP\xampp\htdocs\www\test.php on line 20

  1. <?php
  2.  
  3. class Persoon
  4. {
  5. var $naam, $leeftijd;
  6.  
  7. function __construct ( $naam, $leeftijd )
  8. {
  9. $this->naam = $naam;
  10. $this->leeftijd = $leeftijd;
  11. }
  12. }
  13.  
  14. class Werknemer extends Persoon
  15. {
  16. var $salarisschaal;
  17.  
  18. function Werknemer ( $naam, $leeftijd, $salarisschaal )
  19. {
  20. $this->Persoon ( $naam, $leeftijd );
  21. $this->salarisschaal = $salarisschaal;
  22. }
  23. }
  24.  
  25. $p = new Werknemer ( 'peter', 18, 24 );
  26. echo $p->naam.' is '.$p->leeftijd.' jaar en heeft salarisschaal'.$p->salarisschaal;
  27.  
  28. ?>


aangezien ik extends Persoon gebruik, zou ik die error toch niet moeten krijgen  

7 antwoorden

Gesponsorde links
Offline Stijn - 09/11/2009 18:47
Avatar van Stijn PHP expert In plaats van $this->Persoon(..); te gebruiken moet je parent::__construct(..); gebruiken . Noem je function Werknemer ook __construct().
Offline Abbas - 09/11/2009 18:47 (laatste wijziging 09/11/2009 18:47)
Avatar van Abbas Gouden medaille

Crew .NET
Moet het dan niet iets van new Persoon(..., ...) zijn? 

Edit:
Niet echt dus.. 
Offline M4RtNNN - 09/11/2009 19:08 (laatste wijziging 09/11/2009 19:15)
Avatar van M4RtNNN Nieuw lid ah juist, die tutorial die ik aan het lezen ben is dus aardig over datum  

edit: ik zie zo snel ook geen goeie tutorial op sitemasters over classes, misschien een tip?
Offline Stijn - 09/11/2009 19:19
Avatar van Stijn PHP expert http://www.site...en_met_OOP

De reden waarom je parent::__construct() moet gebruiken is omdat je in je kind klasse (Werknemer) de methode __construct() overschrijft. Als je een andere methode wilt oproepen van de parent klasse (Persoon) kan je $this gebruiken .
Offline Abbas - 09/11/2009 19:27
Avatar van Abbas Gouden medaille

Crew .NET
Daarom zou het handig zijn als de default constructor een aparte naam zou krijgen zoals in .NET! 
Offline marten - 09/11/2009 19:41
Avatar van marten Beheerder beginnen ze weer
Offline Abbas - 09/11/2009 19:55
Avatar van Abbas Gouden medaille

Crew .NET
Zwijgt toch! 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.183s