Avatar billede gedekid Nybegynder
06. august 2008 - 10:40 Der er 4 kommentarer og
1 løsning

catchable fatal error

Hej eksperter,

jeg sidder med en class der driller en smule...

---- KODE ----

class Housetypes {

    public $type;
    public $name;
   
    //DK - DENNE FUNKTION HENTER DET HUS SOM BRUGEREN HAR VALGT OG SÆTTER TYPE
    //EN - THIS FUNCTION SELECTS THE HOUSE THE USER HAS CHOOSEN ON THE HOUSE-SELECTION PAGE
    function houses() {
       
        $sql = "SELECT * FROM housetypes WHERE houseID = '". $_GET["houseID"]."'";
        $result = mysql_query($sql)or die(mysql_error());
       
        $row = mysql_fetch_object($result);
           
        $this->name = $row->name;
        $this->type = $row->type;
       
        return $this;
       
    }
   
}

$house = new Housetypes();

print $house->houses();   

-------------------------------

Med det her kode får jeg :

Catchable fatal error: Object of class Housetypes could not be converted to string in C:\htdocs\www\penpal\web\test.php on line 44

Linie 44 er: print $house->houses();

skriver jeg blot return så udskriver den intet... nogle bud på hvad jeg gør galt ?
Avatar billede pidgeot Nybegynder
06. august 2008 - 10:59 #1
Det står jo sådan set direkte: Når du printer en variabel, så vil den konvertere det til en streng (tekst). Det kunne den bare ikke gøre med det du returnerer, fordi den ikke ved hvordan. Når du bare skriver return kan den dog godt, fordi den kan se der ikke er noget at skrive ud.

"Catchable" betyder at det er en fejl du har mulighed for at fange en exception til, og behandle den, hvilket lader scriptet fortsætte (hvis du vil det): http://dk2.php.net/manual/en/language.exceptions.php

Hvis du implementerer metoden __toString i din klasse, så får du ikke denne fejl.

http://dk2.php.net/manual/en/language.oop5.magic.php
Avatar billede dkfire Nybegynder
06. august 2008 - 11:13 #2
Kunne ikke netop ikke skyldes at du i funktionen houses returnere objectet selv, i stedet for at returnere en værdi.
Avatar billede gedekid Nybegynder
06. august 2008 - 11:24 #3
Hvis jeg i stedet ændrer det til return $this->name . $this->type; så virker det fint...

Vil det være en fin løsning ?
Avatar billede dkfire Nybegynder
06. august 2008 - 15:10 #4
Det kommer da så sandlig an på hvad du har tænkt dig, din funktion skal give besked om.
Avatar billede gedekid Nybegynder
01. september 2008 - 14:39 #5
lukker
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