Avatar billede lsolesen Nybegynder
21. oktober 2003 - 11:26 Der er 13 kommentarer og
2 løsninger

Define eller array

Hvilken måde er at foretrække hvis man vil lave en config.php-fil:

define("SUPERMAND", "Lars");
define("POWERS", "All");

eller

$settings['Supermand'] = "Lars";
$settings['Powers'] = "All";

class Tegneserie {

function Tegneserie() {
  global $settings;
}

}
Avatar billede Slettet bruger
21. oktober 2003 - 11:29 #1
Tjae...hvis du vil være helt sikker på ikke ved en fejl at kunne ændre i din konfiguration skal du gå efter konstanterne.

Forestil dig at du på et tidspunkt lige kommer til at lave en $settings = "jatak"; så er alle dine settings ikke til mere...
Avatar billede detox Nybegynder
21. oktober 2003 - 11:39 #2
Du kan osse vælge at bruge et prefix på de variabler, som du ved du skal holde nalderne fra. Fx:
$my_settings['Supermand'] = "Lars";
$my_settings['Powers'] = "All";
De største fordele ved array's fremfor konstanter er hvis man har brug for at samle nogle variabler i en form for logiske grupper, eller man kan køre dem i løkker og når de skal overføres samlet til funktioner, klasser eller en anden side.
Avatar billede detox Nybegynder
21. oktober 2003 - 11:40 #3
Tjah, mit første argument kunne i realiteten osse gennemføres med konstanter.
Avatar billede lsolesen Nybegynder
21. oktober 2003 - 11:42 #4
detox > hvilket er dit første argument? Altså det med prefixet?
Avatar billede detox Nybegynder
21. oktober 2003 - 11:50 #5
Ja, jeg mener man kunne osse vælge at gruppere dem med et prefix, sådan for overskuelighedens skyld.:
define("RET_PRE_SUPERMAND", "Lars");
define("RET_POWERS", "All");
Avatar billede lsolesen Nybegynder
21. oktober 2003 - 11:56 #6
Altså står vi nu med følgende fordele:

$array: kan køres i løkker

define: kan ikke ændres eller pludselig overskrives

Hvad med performance?
Avatar billede detox Nybegynder
21. oktober 2003 - 12:41 #7
Tjah, mig bekendt er der ikke nogen nævneværdig forskel mht. performance. Det er nok mere et spørglsmål om, hvad man finder mest bekvemt ved programmeringen. Om man skal vælge det ene eller andet, hænger vel osse sammen med hvilket projekt det drejer sig om. Konstanter er generelt nok lidt overset og det er jo synd, for de har da bestemt deres beretigelse.
Avatar billede lsolesen Nybegynder
21. oktober 2003 - 12:47 #8
detox > ja det er rigtigt, men hvor er det lige, at de har deres berettigelse. Hvad egner de sig særlig godt til ift. arrays? Det er jo spørgsmålet :)
Avatar billede detox Nybegynder
21. oktober 2003 - 13:08 #9
Jamen først og fremmest, at de ikke kan ændres og så er det jo tydeligt for enhver, at der er tale om konstanter alene på deres udseende.
Avatar billede hawkmoon Nybegynder
21. oktober 2003 - 13:57 #10
Hvis der nogen steder man skal bruge konstanter, må det vel nærmest være her. En config-fil med en række indstillinger, som ikke skal ændres...
Avatar billede lsolesen Nybegynder
24. oktober 2003 - 19:41 #11
Smid svar, så I kan få nogle point :)
Avatar billede detox Nybegynder
25. oktober 2003 - 00:45 #12
Hvad valgte du så?
Avatar billede lsolesen Nybegynder
25. oktober 2003 - 08:24 #13
detox > Jeg valgte at bruge define til de faste konfigurationer, som jeg puttede i en config-fil, og jeg bruger sikkert også define, hvis jeg skal lave en languagefil.
Avatar billede lsolesen Nybegynder
24. marts 2004 - 10:51 #14
De der vil have point, bedes lige smide nogle svar :D
Avatar billede detox Nybegynder
24. marts 2004 - 10:55 #15
Jo så.
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