Avatar billede oergaard Nybegynder
09. februar 2010 - 12:50 Der er 13 kommentarer og
1 løsning

Kald af funktion udfra data hentet fra f.eks. db, .txt eller lignende

Hvis jeg har en funktion, som f.eks. nedenstående

function phpTest() {
  return "phpTest er kaldt...";
}

Hvordan kalder jeg så denne funktion ud fra en streng, som jeg hente i en database, tekstfil eller lignende.

//Orgaard
Avatar billede a2p-dk Nybegynder
09. februar 2010 - 12:54 #1
$string = "phpTest";
eho $string(); // Udskriver "phpTest er kaldt..."
Avatar billede a2p-dk Nybegynder
09. februar 2010 - 12:54 #2
Avatar billede Slettet bruger
09. februar 2010 - 13:02 #3
Funktionen eval kan også bruges til det formål.
Avatar billede repox Seniormester
09. februar 2010 - 13:05 #4
#3
Det er noget rigtig skidt at begynde at anvende eval().
Sikkerhedsrisikoen i at anvende den funktion, fremfor at anvende polyformi som #1 henviser til er grotesk stor - også set i lyset af nødvendigheden af at stille spørgsmålet, bør vidne om at det ikke er et klogt træk at få brugeren til at anvende sådan en funktionalitet.
Avatar billede repox Seniormester
09. februar 2010 - 13:06 #5
Jeg var for hurtigt på tasterne; det rigtige or er polymorfi og ikke polyformi.
Avatar billede oergaard Nybegynder
09. februar 2010 - 13:19 #6
Hvis nu funktionen skal manipulere med en variable, f.eks. erstatte alle forekomster af "e" med "E". Variablen hedder $testVar og ska ligeledes sættes ud fra kaldet. Funktionen skal evt. kaldes mere end en gang, som i nedenstående eks.

Hvis det var ren PHP ville jeg gøre noget i stil med:

$testVar = "Dette er teksten, hvor e skal erstattes med a...";
phpTest();
$testVar = "Ny tekst, hvor e også skal erstattes med a...";
phpTest();

Kan dette gøres via et db kald eller læsning af .txt?
Avatar billede Slettet bruger
09. februar 2010 - 13:27 #7
oregaard nævner han gerne vil hente funktionen fra en database eller tekstfil og så skal koden på funktionen jo indlæses på en eller anden måde eller har jeg misforstået spørgsmålet helt?
Avatar billede Slettet bruger
09. februar 2010 - 13:29 #8
Ahhh nu læste jeg lige spørgsmålet igen, var vidst en anelse for hurtig før ;-)
Oregaard bare se bort fra alle mine posts hehe.
Avatar billede repox Seniormester
09. februar 2010 - 13:32 #9
#6
Det du selv gengiver er ikke muligt.
Du bliver nød til at fortælle din funktion phpTest hvad den skal behandle.
Så i virkeligheden skulle der stå:

$testVar = "Dette er teksten, hvor e skal erstattes med a...";
phpTest($testVar);
$testVar = "Ny tekst, hvor e også skal erstattes med a...";
phpTest($testVar);


Men du må forklare nærmere hvorfor du har behov for at gøre hvad du ønsker at opnå? Der må være en særlig grund til at du ikke kan gøre det på helt normal vis.
Avatar billede oergaard Nybegynder
09. februar 2010 - 18:05 #10
Hov ja det var en fejl i mit eks.

Funktions kaldet skal selvfølgelig være phpTest($testVar);

Jeg er i gang med at lave en række funktioner som returnere forskelligt indhold, det kunne f.eks. være en menu, en tabel med runde hjørner m.m.

Hvilket indhold der skal indsættes vil jeg så opsætte i en db.

Det er så meningen, at der kun skal være én side nemlig index.php. Hvilken side der skal bygges op hentes så fra URL'en. Det kunne f.eks. være index.php?page=erstatEmedA :)
Avatar billede repox Seniormester
09. februar 2010 - 19:12 #11
Javel; jamen det lyder ... interessant.
Mon ikke det var bedre at kigge på noget objekt orienteret, så? Her tænker jeg på fordelene ved nedarvning og polymorfi (som nævnt tidligere.
Avatar billede oergaard Nybegynder
09. februar 2010 - 19:39 #12
Kan du komme med en reference til online tutorials eller lignende? Så skal jeg gerne kigge på det. :)
Avatar billede repox Seniormester
10. februar 2010 - 07:28 #13
Du kan prøve at kigge på denne artikel, som jeg selv har skrevet:
http://www.err0r.dk/articles/read/hvad_er_oop
Avatar billede oergaard Nybegynder
20. juni 2011 - 08:33 #14
Lukker
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