Inclure en une seule ligne


sff
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 336
Inscription: 2 Fév 2005

Inclure en une seule ligne

Message le Dim Oct 08, 2006 12:26

Bonjours, pour inclure des pages en fonction de certaines conditions tel que if ($_GET["page"] == "verify") j'utilise le code suivant:

Mais peut t'on faire en sorte de faire la meme chose avec quelmque chose de plus court? Si je dois indiquer 100 includes avec les conditions dans la meme page ca risque de faire beaucoup. je précise que dans la condition si if ($_GET["page"] == "verify") la fonction sera du meme nom que le "est égal" donc verify()
Code: Tout sélectionner
  if ($loginOK == false) {
   
   if(isset($_GET['page'])){
    if ($_GET["page"] == "verify") {include('users.php'); verify(); }
     if ($_GET["page"] == "inscription") {include('login.php'); inscription($controlrow);}
     if ($_GET["page"] == "changer_pw") {include('login.php'); changer_pw();}
      if ($_GET["page"] == "verification") {include('login.php'); verification($controlrow);}
       if ($_GET["page"] == "pw_oublie") {include('login.php'); pw_oublie($controlrow);}
         if ($_GET["page"] == "objets_armes") {include('login.php'); objets_armes();}

    }else{
   principal_login($controlrow);
   }
}
[/dico]


rog
WRInaute passionné
WRInaute passionné
 
Messages: 1662
Inscription: 21 Sep 2006

Message le Dim Oct 08, 2006 12:46

pour moi c'est très bien comme ça, si tu variabilise pour effectuer une iteration faudra filtrer correctement

la c'est imprenable

rog


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8303
Inscription: 23 Nov 2005

...

Message le Dim Oct 08, 2006 12:48

... j'aurais peut être davantage fait un switch pour tester tous les cas possibles, ce qui évite de retester a chaque fois le contenu de la variable $_GET['page'].


Suede
WRInaute accro
WRInaute accro
 
Messages: 3722
Inscription: 4 Oct 2002

Re: ...

Message le Dim Oct 08, 2006 12:58

UsagiYojimbo a écrit:... j'aurais peut être davantage fait un switch pour tester tous les cas possibles, ce qui évite de retester a chaque fois le contenu de la variable $_GET['page'].


Sans oublier un break;


dorian53
WRInaute passionné
WRInaute passionné
 
Messages: 2199
Inscription: 10 Avr 2005

Re: ...

Message le Dim Oct 08, 2006 13:02

UsagiYojimbo a écrit:... j'aurais peut être davantage fait un switch pour tester tous les cas possibles, ce qui évite de retester a chaque fois le contenu de la variable $_GET['page'].


+1 c'est fait pour


rog
WRInaute passionné
WRInaute passionné
 
Messages: 1662
Inscription: 21 Sep 2006

Message le Dim Oct 08, 2006 13:07

pourquoi, tu crois que "case quelque chose" c'est pas un test ?

c'est une question de goût le switch c'est bien aussi

pour la suite de if tu pourrais remplacer par des elseif

rog


sff
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 336
Inscription: 2 Fév 2005

Message le Dim Oct 08, 2006 13:16

pour le switsh c'est comme ceci:

Code: Tout sélectionner
  switch ($_GET['page']){
{
case 'inscription' : include('login.php'); inscription($controlrow);
break;
case 'changer_pw' : include('login.php'); changer_pw();
break;
case 'verification' : include('login.php'); verification($controlrow);
break;
case 'pw_oublie' : include('login.php'); pw_oublie($controlrow);
break;
case 'changer_pw' : include('login.php'); changer_pw($controlrow);
break;
default:
include('accueil.php'); principal_login($controlrow);
}
}


Suede
WRInaute accro
WRInaute accro
 
Messages: 3722
Inscription: 4 Oct 2002

Message le Dim Oct 08, 2006 13:22

rog a écrit:pourquoi, tu crois que "case quelque chose" c'est pas un test ?

c'est une question de goût le switch c'est bien aussi

pour la suite de if tu pourrais remplacer par des elseif

rog

Si tu fais un

Code: Tout sélectionner
if
if
if
if
etc

Le test est effectué à chaque fois.

Si tu fais
Code: Tout sélectionner
Switch
  case
     ...
      break;
  case
     ...
      break;
  case
     ...
      break;
  default
     ...
     


Le test est arreté quand on a la correspondance. Si tu classes tes cases en mettant les cas les plus appelés en premier, tu gagnes du temps.


Code: Tout sélectionner
if
elseif
elseif


est une autre solution. A priori aucune différence de temps.
Switch a l'avantage de la lisibilité et de permettre l'utilisation de "continue"


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités