Avatar billede dalbjerg Nybegynder
29. april 2004 - 12:42 Der er 2 kommentarer og
1 løsning

Nyt object i en anden klasses konstruktor.

Hej

Vi er ved at lave et projekt med et par klasser.

Vi har f.eks. en som hedder kontakt og en som hedder anmeldelse.
i kontakt har vi en funktion som hedder telefon($telefon);

den vil jeg så gerne kunne kalde fra flere funktioner over i anmeldelse, og prøver derfor på at lave et nyt object i konstruktoren. Således:

ALtså således:
<?
class anmeldelse {
    function anmeldelse() {
        $kontakt = new kontakt;
    }
   
    function anmeld_form() {
        $kontakt->telefon("40766672");
    }
}
?>

Men den giver denne fejl:
Fatal error: Call to a member function on a non-object in /var/www/class/anmeldelse.class.php on line 8
Avatar billede swaxi Nybegynder
29. april 2004 - 14:05 #1
den variabel $kontakt er i lokalt (funktions) scope. dvs. at den forsvinder, når funktionen afsluttes, og derfor kan den anden funktion (anmeld_form) ikke tilgå den. i php skal du angive eksplicit, hvis en variabel hører til objektet. eg :
<?
class anmeldelse {
    function anmeldelse() {
        $this->kontakt = new kontakt;
    }
   
    function anmeld_form() {
        $this->kontakt->telefon("40766672");
    }
}
?>
Avatar billede dennismp Nybegynder
29. april 2004 - 14:53 #2
bør dog være:
<?
class anmeldelse {
    var $kontakt;
    function anmeldelse() {
        $this->kontakt = new kontakt;
    }
   
    function anmeld_form() {
        $this->kontakt->telefon("40766672");
    }
}
?>
Avatar billede dalbjerg Nybegynder
29. april 2004 - 14:56 #3
jeg er lige begyndt på noget andet, men skal nok give point, nå jeg lige for det testede...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester