Avatar billede sajbar Nybegynder
27. august 2003 - 22:22 Der 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:)
Avatar billede skovenborg Nybegynder
27. august 2003 - 22:27 #1
Du skal skrive $this->beer i stedet
Avatar billede sajbar Nybegynder
27. august 2003 - 22:31 #2
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));

?>

burde jeg ikke få noget ud ?
Avatar billede skovenborg Nybegynder
27. august 2003 - 22:31 #3
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");
Avatar billede ztyxx Nybegynder
27. august 2003 - 22:33 #4
<spam>
er det ikke lettere bare at hente den øl køleskabet....

så er den også kold

</spam>
Avatar billede skovenborg Nybegynder
27. august 2003 - 22:34 #5
nææ egentlig ikke for $thebeer er blot navnet på dit object. Du skulle hellere skrive:
$lokum = new kasse;
$lokum->addBeer($thebeer->name);
Avatar billede skovenborg Nybegynder
27. august 2003 - 22:34 #6
og så:
$p = $lokum->returnShit();
Avatar billede sajbar Nybegynder
27. august 2003 - 22:38 #7
ok måske dårligt eksempel
nyt eksempel

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?
Avatar billede skovenborg Nybegynder
27. august 2003 - 22:54 #8
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.
Avatar billede sajbar Nybegynder
27. august 2003 - 23:01 #9
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 :)

mange tak for hjælpen:)
Avatar billede skovenborg Nybegynder
27. august 2003 - 23:02 #10
jamen så godnat da ;-)
Avatar billede sajbar Nybegynder
28. august 2003 - 09:23 #11
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:)
Avatar billede skovenborg Nybegynder
28. august 2003 - 14:26 #12
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).
Avatar billede sajbar Nybegynder
28. august 2003 - 14:29 #13
ah så er jeg med mange tak for hjælpen, jeg kan nu gå igang med at rode mere med OOP:)
Avatar billede skovenborg Nybegynder
28. august 2003 - 14:33 #14
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");
Avatar billede skovenborg Nybegynder
28. august 2003 - 14:35 #15
og tak for point (nu ligger jeg nummer 1000 - meget fornøjeligt) ;-)
Avatar billede sajbar Nybegynder
28. august 2003 - 14:35 #16
er du tankelæser ? :)
sad lige og tænkte på hvordan den skulle se ud for at få alle informationerne ud:)
Avatar billede skovenborg Nybegynder
28. august 2003 - 14:39 #17
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 ;-=
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