Avatar billede killa_freak Nybegynder
03. februar 2005 - 21:43 Der er 11 kommentarer og
1 løsning

Switch på localhost

Hej!

Mit problem er kort og træls: jeg kan ikke få switch til at virke på min maskine.

Der er PHP 4.3.8 og Apache 1.3.31 installeret.

Kan I hjælpe mig?
Avatar billede rasmusbg Nybegynder
03. februar 2005 - 21:50 #1
Switch som i kontrolstrukturen

switch (<variabel>) {
case <værdi_1>:
...
case <værdi_2>:
...
case <værdi_n>:
...
default:
...
}
Avatar billede coderdk Praktikant
03. februar 2005 - 21:52 #2
switch (<variabel>) {
case <værdi_1>:
...
// Ingen break, fall-through kør også næste blok kode
case <værdi_2>:
...
break;
case <værdi_n>:
...
break;
default:
...
}
Avatar billede killa_freak Nybegynder
03. februar 2005 - 21:56 #3
Er lidt forvirret, skal jeg ikke bruge break?
Avatar billede rasmusbg Nybegynder
03. februar 2005 - 22:01 #4
I coderdk's eksempel kan du se, hvorledes break bruges. Ellers kan du med fordel læse http://dk.php.net/manual/en/control-structures.switch.php

Der er switch beskrevet med bl.a. konkrete eksempler. ;)
Avatar billede coderdk Praktikant
03. februar 2005 - 22:03 #5
God idé at læse rasmusbg's link :) Men jo, du skal bruge break hvis du ikke vil have at den næste blok kode skal køres også!

$x = 1;
switch ( $x )
{
  case 1:
      echo "Det er 1";
  case 2:
      echo "Det er 2 ...måske ;)";
      break;
  case 3:
      echo "Det er 3";
  default:
      echo "Alt for højt tal...";
}
Avatar billede coderdk Praktikant
03. februar 2005 - 22:04 #6
Jeg synes rasmusbg skal svare på denne :)
Avatar billede killa_freak Nybegynder
03. februar 2005 - 22:07 #7
Men her er en lille detalje, når jeg uploader det samme til mit domæne, virker det fint.

Den kommer ikke med nogen fejlmelding, men når man kalder de forskellige cases sker der intet, selvom den fint læser hvad der står under default.
Avatar billede rasmusbg Nybegynder
03. februar 2005 - 22:09 #8
kan du ikke smide et udsnit af din kode, hvor du har switch'en med?
Avatar billede killa_freak Nybegynder
03. februar 2005 - 22:12 #9
Jo, sagtens:

<?php
switch ($site){
case "about":{
    echo    "<h1>About</h1>";
    echo    "<br /><div>Information about one self</div>";
} break;
case "info":{
    echo    "<h1>Information</h1>";
    echo    "<br /><div>Information about the website and it's owner(s)</div>";
} break;
case "contact":{
    echo    "<h1>Contact</h1>";
    echo    "<div>Humbla humbla blah.</div>";
} break;
default:{
    echo    "<h1>Welcome</h1>";
}}

echo    "<a href=?site=about>About</a>";
echo    "&nbsp;<a href=?site=info>Information</a>";
echo    "&nbsp;<a href=?site=default>Front</a>";
?>
Avatar billede rasmusbg Nybegynder
03. februar 2005 - 22:16 #10
Ohhh...det er pga. register_globals er off på din egen maskine, og de er on på serveren, der hoster dit domæne.

Hvis du vil have det til at virke begge steder skal det være:

<?php
switch ($_GET['site']){
case "about":{
    echo    "<h1>About</h1>";
    echo    "<br /><div>Information about one self</div>";
} break;
case "info":{
    echo    "<h1>Information</h1>";
    echo    "<br /><div>Information about the website and it's owner(s)</div>";
} break;
case "contact":{
    echo    "<h1>Contact</h1>";
    echo    "<div>Humbla humbla blah.</div>";
} break;
default:{
    echo    "<h1>Welcome</h1>";
}}

echo    "<a href=?site=about>About</a>";
echo    "&nbsp;<a href=?site=info>Information</a>";
echo    "&nbsp;<a href=?site=default>Front</a>";
?>
Avatar billede killa_freak Nybegynder
03. februar 2005 - 22:20 #11
Tak, det var det der skulle til. Så hvis du sender et svar af en art, kan jeg få afsat pointene.
Avatar billede rasmusbg Nybegynder
03. februar 2005 - 22:21 #12
Det kom her =)
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