Avatar billede diz Nybegynder
04. april 2006 - 17:18 Der er 5 kommentarer og
1 løsning

Functions i et array

Hejsa,

Jeg sidder og bøvler med et problem som jeg ikke kan løse, så jeg håber der måske var en venlig sjæl som kan give lidt input.

Jeg her følgende:
<?PHP

function test1() {
//blabla
}

function test2() {
//blabla
}

funktioner = array();
functioner['f1'] = 'test1';
functioner['f1'] = 'test2';

?>

Det virker fint og jeg kan kalde de forskellige funktioner i arrayet. Problemet kommer hvis jeg smider funtionerne i en klasse:


class testclass {
  function test1() {
    //blabla
  }

  function test2() {
  //blabla
  }

  funktioner = array();
  functioner['f1'] = 'test1';
  functioner['f1'] = 'test2';

}

Nu kan jeg ikke længere kalde funktionerne og det er vel fordi jeg skal have kalde dem med $this->test1() på en eller anden måde, men hvordan kan jeg sgu ikke hitte ud af. Hvor skal $this-> puttes på?

Please Help!

/Sune
Avatar billede diz Nybegynder
04. april 2006 - 17:18 #1
og jeg opretter selvfølgelig klassen inden jeg går igang :)
Avatar billede diz Nybegynder
04. april 2006 - 17:21 #2
nu kalder jeg forresten funktion på denne måde:

$metode = 'f1';
$functioner[$metode];

eller
$metode = 'f3';
$vars = 'blabla';
$functioner[$metode]($vars);
Avatar billede erikjacobsen Ekspert
04. april 2006 - 21:24 #3
Det kan man godt - og måske kan man også bruge det til noget. Et udkast i PHP5 (men hvorfor gøre det OO i PHP4...):

<?

class testclass {
  private $funktioner;

  function test1($a) {
    print "TEST 1 $a";
  }

  function test2($b) {
    print "TEST 2 $b";
  }

  function __construct () {
    $this->funktioner = array();
    $this->funktioner['f1'] = 'test1';
    $this->funktioner['f2'] = 'test2';
  }

  function f() {
    call_user_func( array( &$this, $this->funktioner['f2'] ), 7  );
  }
}

$ff=new testclass();
$ff->f();


?>
Avatar billede diz Nybegynder
05. april 2006 - 10:19 #4
Hej erikjacobsen

Perfekt! Det virker som en drøm. Mange tak. Smid et svar så får du lige nogle points!

/Sune
Avatar billede erikjacobsen Ekspert
05. april 2006 - 10:26 #5
Jeg samler slet ikke på point, tak.
Avatar billede diz Nybegynder
05. april 2006 - 10:40 #6
ok, men så lukker jeg bare :)

Endnu engang tak for hjælpen!
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