Avatar billede palito Nybegynder
11. juni 2006 - 16:23 Der er 12 kommentarer

Registrer arrayværdier igennem en anden klasse

Burde $mit_array ikke indeholde værdierne?!??!

class Min_klasse1 {
  function registrer_array($streng) {
    $mit_array[] = $streng;
  }
}

class Min_klasse2 extends Min_klasse1 {
  function test_funktion() {
    $this->registrer_array("dette er en test");
  }
}
Avatar billede erikjacobsen Ekspert
11. juni 2006 - 16:34 #1
Jeg kan ikke se hvad du prøver på, men denne skitse, kun en skitse, skulle da gerne virke:

<?

class Min_klasse1 {
  var $mit_array;
  function registrer_array($streng) {
    $this->mit_array[] = $streng;
  }
}

class Min_klasse2 extends Min_klasse1 {
  function test_funktion() {
    $this->registrer_array("dette er en test");
  }

  function ud() {
    print $this->mit_array[0];
  }
}

$n=new Min_klasse2();

$n->test_funktion();

$n->ud();

?>
Avatar billede palito Nybegynder
11. juni 2006 - 16:59 #2
Hvorfor virker dette så ikke?

<?php
class Min_klasse1 {
  var $mit_array;
  function registrer_array($streng) {
    $this->mit_array[] = $streng;
  }

  function ud() {
    return print_r( $this->mit_array, true );
  }
}

class Min_klasse2 extends Min_klasse1 {
  function test_funktion() {
    $this->registrer_array("dette er en test");
  }
}

$n=new Min_klasse2();
$n2=new Min_klasse1();

$n->test_funktion();

echo $n2->ud();
?>
Avatar billede nielle Nybegynder
11. juni 2006 - 17:03 #3
$n og $n2 er to forskellige objekter. Hvad du kalder af funktioner på det ene, har ingen effekt på det andet.
Avatar billede palito Nybegynder
11. juni 2006 - 17:12 #4
Skal jeg ikke gøre mit array globalt elelr statisk elelr sådan noget?

Hvordan skal det se ud hvis det jeg forsøger på skal kunne lade sig gøre? Jeg skal have en klasse som indeholder en funktion til at registrere værdier til et array og en funktion som udskriver alle værdierne.

Den klasse skal så kunne tilgås fra mange forskellige andre klasser!
Avatar billede nielle Nybegynder
11. juni 2006 - 17:19 #5
static ville være en løsning på det problem. Hvorvidt det lige er den ideelle løsning i dit tilfælde ved jeg ikke.
Avatar billede erikjacobsen Ekspert
11. juni 2006 - 17:44 #6
"...fra mange forskellige andre klasser"  Du kan lave en Singleton med dit array i. Globale variabler er ikke sundt for sjælen.
Avatar billede palito Nybegynder
11. juni 2006 - 18:08 #7
erikjacobsen - hvordan skal det så se ud?
Avatar billede erikjacobsen Ekspert
11. juni 2006 - 21:31 #8
Du bruger selvfølgelig PHP 5, hvor du kan sådan ca. som i http://qwix.media-box.net/index.php/2004/09/29/24-LeSingletonEnPhp5
Avatar billede palito Nybegynder
12. juni 2006 - 18:24 #9
kan du lave mine to klasser så de virker?
Avatar billede erikjacobsen Ekspert
12. juni 2006 - 19:53 #10
Nej. Det er altså sjovere for dig at prøve selv, og jeg har ikke sådan tid til lige det ;)
Avatar billede palito Nybegynder
16. juni 2006 - 14:30 #11
Har jeg misforstået idéen i expceptions - eller er det det jeg skal ha fat i?
Avatar billede nielle Nybegynder
16. juni 2006 - 18:06 #12
Hvor får du exceptions til at komme ind i problemstillingen?
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