Avatar billede shubijam Nybegynder
15. december 2005 - 22:22 Der er 4 kommentarer

Define kombineret med navne fra database

Hej folkens

Jeg anvender PHP-funktionen define() i forbindelse med sprogfiler i et CMS. Fx ser en af konstanterne således ud i den danske sprogfil.

define("NEW_PAGE", "Ny side");

Jeg har brug for at opbygge en menu udfra en database, hvor jeg for hvert menupunkt gemmer menupunktets navn - beskrevet ud fra konstantens navn, fx NEW_PAGE.

Hvis jeg bare vil udskrive konstanten på normal vis, kan jeg gøre det ved fx
print NEW_PAGE;

Men hvis jeg vil gøre det udfra mit database-indhold, virker det ikke med fx:

print $row_menu[Title]; (hvor Title kunne være NEW_PAGE). Her printer den bare konstantens navn.

Håber, I forstår spørgsmålet - hvordan kan jeg løse dette?
Avatar billede brego Nybegynder
15. december 2005 - 22:40 #1
Lad vær med at bruge konstanter. De kan bruges i få tilfælder, og det er ikke en af dem. Brug hellere et array, eller et singelton objekt (hvis det er kompliceret nok).
Avatar billede shubijam Nybegynder
09. januar 2006 - 21:34 #2
Der er gået lidt tid, men jeg prøver alligevel igen.

Først og fremmest - hvad er forklaringen på, at jeg ikke bør bruge konstanter. Det fungerer helt perfekt, men er det for tungt eller hvad? Hvorfor er et array bedre?

For det andet har jeg endnu ikke løst gåden om. Hvorfor kan jeg ikke referere til konstanterne udfra strings i min database?
Avatar billede shubijam Nybegynder
09. januar 2006 - 21:59 #3
PS.. Jeg har lige bemærket, at OsCommerce anvender define() i sprogfilerne..
Avatar billede shubijam Nybegynder
03. april 2006 - 22:25 #4
constant("MY_CONSTANT");
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