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
Annonceindlæg fra Capgemini
04. april 2006 - 17:18
#1
og jeg opretter selvfølgelig klassen inden jeg går igang :)
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);
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(); ?>
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
05. april 2006 - 10:26
#5
Jeg samler slet ikke på point, tak.
05. april 2006 - 10:40
#6
ok, men så lukker jeg bare :) Endnu engang tak for hjælpen!
Vi tilbyder markedets bedste kurser inden for webudvikling