|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
sff WRInaute occasionnel

Inscrit le: 02 Fév 2005 Messages: 217
|
Posté le : Dim Oct 08, 2006 12:26 Sujet du message: Inclure en une seule ligne |
|
|
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] |
|
| |
|
 |
rog WRInaute accro

Inscrit le: 21 Sep 2006 Messages: 1662 Localisation: sapucaia do sul (RS)
|
Posté le : Dim Oct 08, 2006 12:46 Sujet du message: Inclure en une seule ligne |
|
|
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

Inscrit le: 23 Nov 2005 Messages: 2513 Localisation: Lyon, capitale des Gaules
|
Posté le : Dim Oct 08, 2006 12:48 Sujet du message: ... |
|
|
| ... 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

Inscrit le: 04 Oct 2002 Messages: 3665 Localisation: Suède
|
Posté le : Dim Oct 08, 2006 12:58 Sujet du message: Re: ... |
|
|
| 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 accro

Inscrit le: 10 Avr 2005 Messages: 1573
|
Posté le : Dim Oct 08, 2006 13:02 Sujet du message: Re: ... |
|
|
| 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 accro

Inscrit le: 21 Sep 2006 Messages: 1662 Localisation: sapucaia do sul (RS)
|
Posté le : Dim Oct 08, 2006 13:07 Sujet du message: Inclure en une seule ligne |
|
|
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

Inscrit le: 02 Fév 2005 Messages: 217
|
Posté le : Dim Oct 08, 2006 13:16 Sujet du message: Inclure en une seule ligne |
|
|
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);
}
} |
|
|
| |
|
 |
Suede WRInaute accro

Inscrit le: 04 Oct 2002 Messages: 3665 Localisation: Suède
|
Posté le : Dim Oct 08, 2006 13:22 Sujet du message: Inclure en une seule ligne |
|
|
| 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
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.
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" |
|
| |
|
 |
| |
|
|