27. august 2003 - 22:22Der er
16 kommentarer og 1 løsning
Objekt Orienteret Programmering
Hejsa sidder og overvejer hvordan jeg skal lave noget kode.
og jeg vil høre om følgende kan lade sig gøre.
lave noget ala:
<?php class kasse { var $beer;
function addBeer($thebeer) { $this -> $beer = $thebeer; }
function returnShit() { Return $beer; } } ?>
<? class beer { var $name ="tuborg"; } ?>
det jeg ønsker er så at jeg kan hente den øl frem jeg har tilføjet og få adgang til de variabler der ligger lige netop i den klasse altså navnet på øl'en jeg ved ikke om I er med på hvad jeg mener.. ej heller om det kan lade sig gøre... det er her I skal hjælpe mig kære eksperter:)
okay en fejl mindre :) i en anden fil forsøger jeg følgende: <? include('beer.php'); include('kasse.php'); $thebeer = new beer; $kasse = new kasse; $lokum -> addBeer($thebeer); $p = $kasse -> returnShit(); print_r(get_class_vars($p));
hvad præcis vil du med den anden class beer??? For hvis du skal lægge en variabel ned i "kasse" skal du jo skrive: $beer = new kasse; $beer->addBeer("tuborg");
jeg vil oprette et kuld killinger. et kuld har et navn, og kan bestå af flere killinger en killing har nogle informationer, som navn, køn etc. disse informationer vil jeg gemme i killinge objektet, når de er gemt vil jeg tilføje et killinge object til et "kuld" object, inden fra kuld objectet/klassen ønsker jeg at have mulighed for at hente/bruge de informationer der er på den pågældende killing. jeg ved ikke om det giver en størrer mening?
Måske lidt i den her stil:?? <?php class killinger { var $navn,$sex,$alder; function killinger($navn,$sex,$alder) { $this->navn=$navn; $this->sex=$sex; $this->alder=$alder; } function return_killing() { $arr = array($this->navn,$this->sex,$this->alder); return $arr; } } class kuld { var $killing = array(); function add_killing($arr) { for ($i=0;$i<sizeof($arr);$i++) { $this->killing[$arr[0]][$i] = $arr[$i]; } } function hent_killing($navn,$hent) { return $this->killing[$navn][$hent]; } } $kat = new killinger("Fido","han",18); $retur = $kat->return_killing(); $kuld = new kuld; $kuld->add_killing($retur); echo $kuld->hent_killing("Fido",2);
?>
Der kan selvfølgelig rettes/tilføjes en masse afhængigt af hvordan du vil ha' det.
det er faktisk ret meget det jeg tænker på... Nu skal jeg bare have grejet Koden 100% så jeg fatter det helt :) det hjælper nok at sove lidt på den jeg forstår ikke helt hvorfor hent killing kun retuner alderen... men som sagt noget søvn hjælper jo nok på det hele hvis du gider smide et svar så får du point når jeg står op imorgen :)
nu har jeg sovet lidt på det.. men kan ikke helt forstå hvorfor hent_killing kun viser alderen, og ikke de sidste informationer. og heller ikke lige helt hvordan at add_killing skulle se ud hvis det var muligt at tilføje mere end en kat til et kuld.. arrays er ikke lige min store side som du vel kan regne ud *G* håber du vil være så venlig at hjælpe med de sidste uklarheder så burde jeg være fit for fight:)
Her er eksemplet igen med en mere killing: $kat = new killinger("Fido","han",18); $kat2 = new killinger("Mis","hun",2); $retur = $kat->return_killing(); $kuld = new kuld; $kuld->add_killing($retur); $kuld->add_killing($kat2->return_killing()); echo $kuld->hent_killing("Fido",2); echo $kuld->hent_killing("Mis",1);
Først laver jeg en kat/killing med new killinger(navn,køn,alder); Derefter tilføjer du den kat til kuld med add_killing($kat) hvor $kat er det array du får med retur_killing(); Herefter henter jeg en oplysning ud fra kuldet med hent_killing(navn,oplysning) hvor du henholdsvis kan skrive 0(navn),1(køn) og 2(alder).
Hvis du bare vil have alle oplysninger på en gang kan du jo lave en funktion til det: class kuld( .... function killing_data($navn) { return "Navn: ".$this->killing[$navn][0]." Køn: ".$this->killing[$navn][1]." Alder: ".$this->killing[$navn][2]; } ..... og så henter skriver vi oplysningerne for fx Fido: echo $kuld->killing_data("Fido");
jep jeg er den mystiske tankelæser Ib - eller sådan da ;-)
Troede egentlig det var det du ville da du sagde den kun udskrev alderen ;-=
Synes godt om
Ny brugerNybegynder
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.