if() / adresse problem

Tags:    php

<< < 12 > >>




Indlæg senest redigeret d. 13.05.2009 01:35 af Bruger #3530
11 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Men hvis jeg kører en if sætning kan jeg max have 6 sider adgangen. Når jeg nu gerne vil have....50 f.eks. hvilken metode skal jeg så bruge til at sætte den op ?


Switch vil være oplagt.

switch($_GET['side]) {
case 12:
//lav side 12 her;
break;
default:
//lav en fejlmeddelsesher
}

se: php.net/switch

Hvad bruges tallet 12 til? At hente noget fra en database? Kalder det en funktion? Hvis den gør, kan du overveje en lidt anden tilgang, hvor du opretter et array som styrer din hjemmeside. f.x

$mypages = array();
..
$mypages[12] = 'makePage12()';
..

Dette kan du gøre i en fil du inkluderer i din index.php. I index.php skriver du så:

if( isset($mypages[$_GET['side']]) )
eval($mypages[$_GET['side']]);
else
// siden findes ikke

Så du lige tjekker om din 'side' findes, før du prøver at bruge den.

Dennis Møllegaard Pedersen
http://dennis.moellegaard.dk



Ja.. switch kan sagtens klare det....

Hilsen CHadi
Mit lykketal er 2959







Indlæg senest redigeret d. 13.05.2009 01:35 af Bruger #3530
Det ville være fedt at kunne lave switch...for det er vel nemmere/hurtigere for serveren at styre switch'en end alle de if-sætninger ikke ? Der kan som sagt jo kun være 6 argumenter i en if-sætning, men kan der så være uendeligt antal i en switch ??


Jeg har aldrig oplevet at der er begrænsninger på if() - det kan bare nemt bliver uoverskueligt. switch() kan klare det du har behov for :). Da switch() og if() egenlig er det samme, så er der mange sprog der konvertere switch om til if()-sætninger og så bruger dem. Hvis der er en forskel, så er den så lille at det ikke kan betale sig at tænke på det.

Jeg har set at en gul lavede et helt website i een stor switch().. Sitet bestod af en index-fil og så en switch .. Det virkede fint - men var umuligt at vedligeholde.


Dennis Møllegaard Pedersen
http://dennis.moellegaard.dk







Indlæg senest redigeret d. 13.05.2009 01:35 af Bruger #3530
Jeg har udvidet dit if() med 10 cases. Det virker fint, så dit problem kunne måske være en fejl afledt af noget andet?

Se http://dennis.moellegaard.dk/v4/php/if.php?source=1

Kan switch klare det ? For kan den ikke gøre det hurtigere eller klare det overhovedet, så er det vel nytteslyst at skifte fra if til switch ?


Ja, og det kan if() nu også :)

Dennis Møllegaard Pedersen
http://dennis.moellegaard.dk







Indlæg senest redigeret d. 13.05.2009 01:35 af Bruger #3530




Indlæg senest redigeret d. 13.05.2009 01:35 af Bruger #3530
nej, hvis du læser en af mine foregående posts siger jeg at min server netop ikke kan godtage mere end 6 argumenter i en if() sætning


Jow det så jeg godt - men med al respekt, så tager folk fejl indimellem. Hvilken version bruger du? Og hvis du mener at det er php der har en bug, bør du indrapportere det - så vi andre kan ikke skal sidde og kæmpe med det :)

Hvilken fejl får du? Kan jeg se det et sted? Jeg er nysgerrig :)

Dennis Møllegaard Pedersen
http://dennis.moellegaard.dk







Indlæg senest redigeret d. 13.05.2009 01:36 af Bruger #3530
<< < 12 > >>
t