PHP OOP fejl...

Tags:    php

<< < 12 > >>
Hej allesammen!
Jeg er gået lidt ned i OOP når det gælder PHP.
Jeg er dog rendt ind i et problem: min kode virker ikke.. :S
Kan virkelig ikke spotte fejlen, men håber en af jer måske kan..
Kode:
Fold kodeboks ind/udKode 


Ved godt at det er en større samling, men det er fordi jeg virkelig har prøvet at skrive den flotteste syntax jeg har prøvet...

Vil egentlig også gerne have noget feedback på min opbygning af klassen, og lidt om min syntax.
Håber i kan hjælpe!
~Jakob



Indlæg senest redigeret d. 17.05.2008 00:01 af Bruger #11328

Ah, det passer ikke helt. Når du laver debug kunne du lave følgende til sidst i scriptet:

Fold kodeboks ind/udKode 


Syntaksfejl resulterer i at scriptet ikke afvikles. Derfor hvis display_errors i php.ini på et eller andet tidspunkt er slået fra vil det resultere i en blank side.

(BTW: Hvorfor skriver du: @PARAM før du beskriver en variabel i kommentarene?)


@param, @return og en masse andre navne er med til at definere en masse ting for funktionen. @param er en indikator for at man tale om en parameter til funktion. @return er indikator for hvad funktionen returnerer.
Alt dette er til hvis man en dag beslutter sig for at udskrive en dokumentation for sin kode. Eksempelvis med phpdoc.
Se mere på: http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_phpDocumentor.pkg.html

Jeg bruger det i forbindelse med Zend Studio. Dette hjælper programmet til at give brugbare oplysninger igennem intellisense.



Hmm... havde ikke lige set næste side :P så svarede lige på det samme som GNU :D



Indlæg senest redigeret d. 17.05.2008 01:09 af Bruger #8845
Hvis der ikke kommer noget output overhovedet skyldes det nok at du har slået error reporting fra. Du kan slå det til med error_reporting(E_ALL); i starten af dit script.
Så får du både errors og notices hvilket er rart. Desuden kan det også give nogle gode hints omkring din kode hvis du så E_STRICT til også - error_reporting(E_ALL | E_STRICT);
:)



Vær da lidt hardcore og brug noget assert til at debugge med. Tager lidt tid at sætte op, men koden du ender op med under debugningen, bliver meget overskueligt, http://dk2.php.net/manual/en/function.assert.php




Jeg bruger en host hvor jeg selv har meget lidt kontrol over selve PHP's opbygning... Kan fakstisk ingengang oprette filer der ikke ender med .txt :(



Men som regel vil der jo være angivet en linje. Og jeg synes efterhånden at jeg rimelig hurtig kan "spore" en syntax fejl ved hjælp af den fejl php giver.



Så er jeg løbet ind i endnu et problem.
Kan virkelig ikke selv se fejlen:

class.php
Fold kodeboks ind/udKode 


class_use.php
Fold kodeboks ind/udKode 


Men den udskriver ikke noget. Fejlen ligger i getCarsInGarage() men kan ikke selv finde den.

BTW: Egentlig ville jeg gerne have getCarsInGarage til at returnere et array med navne, år HK osv. men kan ikke lige regne ud hvordan det skulle gøres, og har stirret mig blind i manualen... Nogen ideer??

EDIT: er det muligt som i fx C++ at lave en public: så man ikke er nød til at skrive public foran hver variabel..?



Indlæg senest redigeret d. 18.05.2008 13:37 af Bruger #11328
Hey,

Tror ikke din fejl ligger i getCarsInGarage(), men i denne linje: if(!is_array(Garage::getGarages($newGarage)))
Der er nemlig ikke nogen function der hedder getGarages()...

Det med at retunere et array, er vel bare at retunere et...



<< < 12 > >>
t