Avatar billede danco Nybegynder
08. januar 2010 - 14:05 Der er 7 kommentarer og
1 løsning

Er det den smarteste måde at gøre det på?

Hejsa,
Jeg er endelig begyndt at forstå den objektorienteret tankegang og dermed også blevet mere habil i php programmering. Jeg sidder og er i gang med et brugersystem hvor administratoren skal have 3 muligheder, slette, vise, og oprette brugere. Jeg vil helst holde alt dette i samme dokument for nemhedens skyld, men er det den rigtige struktur og er det overhovedet nogen god idé at gøre det på den måde?

Min hovedopbygning af siden:

<?php
$funktion = $_GET['func'];
    if($funktion != null){
        if($funktion == "opret"){
            //opret bruger   
        }
        if($funktion == "show"){
            //Vis brugere
        }
        if($funktion == "edit"){
            //Rediger brugere
        }
    }
    else {
        echo "Du har følgende valgmuligheder <BR />
        <a href=\"users.php?func=opret\">Opret bruger</a> <BR />
        <a href=\"users.php?func=show\">Vis brugere</a><BR />
        <a href=\"users.php?func=edit\">Rediger bruger</a><BR />";
    }
   
   
?>
Avatar billede majbom Novice
08. januar 2010 - 14:11 #1
hvor har du oo henne i den stump kode der?

og hvis det er sådan du har tænkt dig at bygge admin-delen op er det fint nok, men så brug en switch i stedet:

switch($function){
  case 'opret':
      //opret
  break;
  case 'edit':
      //edit
  break;
  default:
      //show
  break;
}
Avatar billede danco Nybegynder
08. januar 2010 - 14:22 #2
Splazz;
Jeg ved godt at jeg ikke har noget Oo i min stump kode her, det var mere som en generel orientering af at jeg forstår den oo tankegang.
Kan du gå lidt mere i detaljer omkring hvorfor jeg løser opgaven bedre med en switch() frem for med if()?
Avatar billede majbom Novice
08. januar 2010 - 14:29 #3
jeg så lige at jeg havde glemt noget, så den bør nok se sådan her ud:

switch($function){
  case 'opret':
      //opret
  break;
  case 'edit':
      //edit
  break;
  case 'show':
      //show
  break;
  default:
      //du har nu flg muligheder...
  break;
}

jamen jeg synes personligt at det er nemmere at have med en switch at gøre i bl.a. denne type sammenhæng, det er mere overskueligt, og umiddelbart kræver det mindre kode... :)
Avatar billede danco Nybegynder
08. januar 2010 - 14:35 #4
Okay, jeg må indrømme at jeg godt kender switchen men er ikke helt fortrolig med dens opbygning, så hvis vi skal gå helt i detaljer.

switch($function){
  case 'opret':
      opretBruger();
  break;
  case 'edit':
      editBruger();
  break;
  case 'show':
      showBruger();
  break;
  default:
        echo "Du har følgende valgmuligheder <BR />
        <a href=\"users.php?func=opret\">Opret bruger</a> <BR />
        <a href=\"users.php?func=show\">Vis brugere</a><BR />
        <a href=\"users.php?func=edit\">Rediger bruger</a><BR />";
  break;
}

Skulle min switch så se sådan ud?
Avatar billede majbom Novice
08. januar 2010 - 14:38 #5
det ser ikke helt forkert ud :)

og et lille tip: hold dine funktionsnavne, variabelnavne, classenavne osv i ÉT sprog (gerne engelsk, så slipper du for bøvle med danske specialkarakterer og om det nu var omdoeb eller omdob ;o) )- det giver et bedre overblik
Avatar billede danco Nybegynder
08. januar 2010 - 15:19 #6
Okay,
jeg bestræber mig på at holde mine variabler og functions i engelsk, men det går lige lidt vel stærkt ind i mellem, specielt når endelig toget kører :)
Men tak for din hjælp og tip, smider du svar så får du point ?
Avatar billede majbom Novice
08. januar 2010 - 15:21 #7
ja det kan godt smutte engang imellem, men bare man får det gjort til en vane, så går det nemmere :)

selv tak
Avatar billede majbom Novice
08. januar 2010 - 15:31 #8
tak for point - go weekend
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