[PHP] Object in de constructor van een class aanmaken!

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Tweakers,

Ik heb een probleem met classen in PHP. De fout heb ik ondertussen gevonden en ik weet waar de parser op vast loopt, maar ik weet geen goede oplossing voor mijn probleem. Op php.net vind ik niets over objecten declareren binnen een klasse. Google

Wat wil ik bereiken: stel je hebt de volgende klasse

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class MerkController{
    var $dalMerk;
    
    function MerkController(){
        //in de constructor creeren we een instantie van DalMerk
        $dalMerk = new DalMerk();
    }
    
    function getById($merkid){
        $merk = new Merk();
        //$dalMerk is hier null
        //daarom moet ik terug een nieuwe instantie maken.
        $dalMerk = new DalMerk();
        $result = $dalMerk->getById($merkid);
        
        $row = mysql_fetch_array($result);
        $merk = $this->fillMerk($row);
        
        return $merk;
    }   

}


nu zit het probleem bij de variabele $dalMerk. Alles gaat goed tot ik de functie getById probeer op te roepen. Op een of andere manier is $dalMerk een nullreferentie geworden.

Hoe kan ik dit nu best oplossen. Het liefst zou ik gewoon 1 globale variabel gebruiken binnen mijn klasse. Kan dit niet in PHP, en moet ik dan telkens $dalMerk = new DalMerk(); typen?

Alvast bedankt

Acties:
  • 0 Henk 'm!

Verwijderd

bij php moet je gebruik maken van de this pointer

PHP:
1
2
3
4
5
6
7
8
class MerkController{
    var $dalMerk;
    
    function MerkController(){
        //in de constructor creeren we een instantie van DalMerk
        $this->dalMerk = new DalMerk();
    } 
}

Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 21-09 12:54
Je moet je lokale klasse variabelen aanspreken met $this.Voor een voorbeeld zie hier.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Schitteren! Heel hard bedankt. Daar had ik eigenlijk zelf ook wel op kunnen komen. Als het voor de functies ook zo is.