Inclure en une seule ligne

  • Auteur de la discussion Auteur de la discussion sff
  • Date de début Date de début
WRInaute impliqué
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:
  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]
 
WRInaute passionné
pour moi c'est très bien comme ça, si tu variabilise pour effectuer une iteration faudra filtrer correctement

la c'est imprenable

rog
 
WRInaute accro
...

... 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'].
 
WRInaute passionné
Re: ...

UsagiYojimbo a dit:
... 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;
 
WRInaute passionné
Re: ...

UsagiYojimbo a dit:
... 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
 
WRInaute passionné
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
 
WRInaute impliqué
pour le switsh c'est comme ceci:

Code:
  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);
}
}
 
WRInaute passionné
rog a dit:
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:
if
if
if
if
etc
Le test est effectué à chaque fois.

Si tu fais
Code:
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:
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"
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut