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?
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).
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?
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.