Start på PHP, tilføj forfatter

Tags:    php oop start php

<< < 12 > >>
hejsa udviklere

Er i fuld gang med Start på PHP, på side 32 kan/skal man udvide sin Bog.php klasse,
Fold kodeboks ind/udPHP kode 

med en forfatter, jeg har iflg bogen lavet 2 klasser der nedarver fra Bog.php, nemlig:
Fold kodeboks ind/udPHP kode 
og
Fold kodeboks ind/udPHP kode 

Er der en der kan fortæller hvor jeg skal tilføje Forfatter, gerne foklaret, bogen siger noget om den skal tilføjes Bog.hph men hvordan.



Indlæg senest redigeret d. 24.07.2012 21:15 af Bruger #13297
11 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Alle bøger har en forfatter, derfor tilføjes den til klasses Bog.

Hvis du ser nærmere på "Bog" vil du se, den har en variable: $titel. Forfatter kan du tilføje på selvsamme måde. En variable der holder værdien:

var $forfatter

og to funktioner, der læser og skriver til denne værdi:

function set_forfatter($forfatter){
......
function hent_forfatter(){




ok, men hvor skal jeg give den information om forfatteren. Syntes bogen springer fint over det, min Bog.php ser sådan her ud nu:
Fold kodeboks ind/udPHP kode 




Du er nødt til at gøre det på samme måde som med alt andet

Fold kodeboks ind/udPHP kode 


Du kunne også umiddelbart lave en constructor og destructor, så du har muligheden for at sætte forfatter og titel med det samme du laver klassen, og så printer den når klassen går ud af scope:

Fold kodeboks ind/udPHP kode 




Indlæg senest redigeret d. 24.07.2012 21:49 af Bruger #17260
Er slet ikke kommet så langt, endnu. Er helt ny i det her,
Men hver function, skal kun have en parameter, medmindre den nedarver fra en anden ?

Noget helt andet, hvis jeg følger eksemplerne i bogen, og min output fil ser sådan her ud:
Fold kodeboks ind/udPHP kode 

Hvis $boeger[0], er samme objekt, hvordan er det så jeg får min forfatter tilføjet, har joh sat $boeger[0], som en fagbog. skal jeg lave et nyt objekt eller kan det tilføjes.

Håber ikke jeg stiller mærkelige spørgsmål, men forstår det ikke lige.



Når du implementerer fra en anden klasse kalder du funktionerne fra det implementerede som default.

Må jeg lige høre helt præcis hvad du vil have din kode til at gøre, så kan jeg skrive noget fungerende til dig, som du vil have det - og selvfølgelig med kommentarer.



er slet ikke sikker, er stadig i læringsfasen.

Men tænkte på at når jeg opretter en ny Fagbog eks. Hvordan får den så Forfatter data. Er det jeg ikke kan se.
Fold kodeboks ind/udPHP kode 

Uden at jeg skal oprette en ny Bog bare for at kunne bruge Forfatter.

Tænkte om jeg kunne bruge Forfatter med det samme i Fagbog.
Altså som jeg tror, så ville jeg stå med to objekter, en
Bog(forfatter,titel) og en
Fagbog(titel,genre)

Giver det nogen mening, overhovedet.



Så ved bog vil du have muligheden for at indsætte forfatter og titel
Ved fagbog vil du have muligheden for at indsætte forfatter, titel og genre
Ved Roman vil du have muligheden for at indsætte forfatter og titel? (akkurat som bog)

Eller misforstår jeg noget?



ja, er det ikke det smarteste.
Men bogen (lærebogen) skriver det i to klasser, men hvis Bogen er den samme der snakkes om, så er det vel ikke smart med to objekter, der faktisk er det samme.

Så et sidespørgsmål, hvordan får jeg Forfatter brugt i fagbog.

Grunden til jeg spørger så meget, er at jeg gerne ville være helt sikker. Da det projekt jeg gerne ville lave på et tidspunkt, har jeg fået at vide at det er smartest med OOPHP



Indlæg senest redigeret d. 24.07.2012 23:15 af Bruger #13297
Da alle bøger har titel og forfatter, declarer vi det i Bog som en constructor - jeg har desværre ikke tilføjet en mulighed for at ændre på forfatter og titel, uden at lave et nyt objekt.

Men jeg håber at du kan følge min idé.

Hvis ikke, må du lige slå på tråden.

Fold kodeboks ind/udPHP kode 


Det er som jeg forstår det du efterspørger.



Tror jeg er med, du tildeler først værdier til objektet. Senere i setGenre tilføjer du book[1] en genre.



<< < 12 > >>
t