Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4648 connectés 

 


Dernière réponse
Sujet : [ PHP ] Quelqu'un peut m'expliquer la fonction switch ?
Proov ok merci ethernal !! :)  
 
ben c'est a dire que je suis sur le PHP depuis pas longtemps ;) le switch c'est assez balaise je trouve :D  
 
merci pour ton code
je vais le copier et essayer de travailler dessus :)  
 
encore merci
 :hello:

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Proov ok merci ethernal !! :)  
 
ben c'est a dire que je suis sur le PHP depuis pas longtemps ;) le switch c'est assez balaise je trouve :D  
 
merci pour ton code
je vais le copier et essayer de travailler dessus :)  
 
encore merci
 :hello:
ethernal Tu nous demandes avec switch, et puis tu l'utilises même pas ??  :heink:  
 
switch ($cat){
  case("news" ): $page_principale= "news.php"; break;
  case("archives" ): $page_principale= "archives.php"; break;
  case("storiesdb" ): $page_principale= "stories/dragonball.php"; break;
  default: $page_principale= "news.php"; break;
}
include($page_principale);
 
bon alors pour ta page 2,  
- soit tu mets le code dans ta page qui correspond, stories/dragonball.php (dans ce cas-ci). (tu fais un switch($page)... et tu refais un include() )
- soit tu le tapes dans ce switch ci (ce qui est pas très propre.)
switch ($cat){
  case "news": $page_principale= "news.php"; break;
  case "archives": $page_principale= "archives.php"; break;
  case "storiesdb":  
   switch($page){
     case "1": $page_principale= "stories/dragonball.php";
     case "2": $page_principale= "stories/dragonball_2.php";
     default: $page_principale= "stories/dragonball.php";
   }
   break;
  default: $page_principale= "news.php"; break;
}
include($page_principale);
Proov merci a tous mais là je suis complètement perdu :D  
 
vous voulez pas m'expliquer comment je fais pour avoir index.php?cat=storiesdb&page=2   ???
 
ca marche impec quand y'a que index.php?cat=storiesdb mais pour page=2 ca fait rien (il me recharge la page 1 )
 
avec ca, ca marche:
 
<?
if ($cat=='news') {include('news.php');}
elseif ($cat=='archives') {include('archives.php');}
elseif ($cat=='storiesdb') {include('stories/dragonball.php');}
else {include('news.php');}
?>

 
mais quand je veux rajouter une autre ligne dedans, caaa maaaaaarche paaaas :cry:  :cry:  
 
<?
if ($cat=='news') {include('news.php');}
elseif ($cat=='archives') {include('archives.php');}
elseif ($cat=='storiesdb') {include('stories/dragonball.php');}
elseif ($cat=='storiesdb' && $page=='2') {include('stories/dragonball_2.php');}
else {include('news.php');}
?>

 
si qqun voit l'erreur, ca serait sympa qu'il me la dise :)  
 
si vous voulez me contacter par MSN ou mail: Ze_Gang@dbzgeneration.com
 
voilààà
 :hello:

 

[edtdd]--Message édité par Negueu--[/edtdd]

ethernal Sh@rdar> désolé pour la correction, mais bon tu avais l'air très pointilleux sur les termes alors... :D La prochaine fois je réagirai plus vite ;)
 
gizmo> et la facilité de lecture aussi, qui découle d'un code plus propre ;)
gizmo autre précision, si l'on ne met pas de break; les instruction suivantes sont exécutée, cela permet d'exécuter un code completement, partiellement, ou un autre code en fonction de la variable.
 
Le grand intérêt du switch, n'est pas son optimisation en terme de performance, mais sa capacité a facilement suivre les futures ajouts dans le code.
Sh@rdar désolé pour les erreurs  :D  maissi vous saviez mieux fallait expliquer !  ;)
ethernal

Sh@rdar a écrit a écrit :

en fait le switch est une boucle qui prend une variable en paramètres (en algo de base on parle de cas).
 




 
c pas une boucle, c'est une conditionnelle.
il ne passe qu'une fois dedans, et exécute le code qui correspond à la variable testée.  il sort du test dès qu'il trouve un "break", sinon, il continue à exécuter le code qui suit.

xmulder

Sh@rdar a écrit a écrit :

switch ($variable) {
  case "oui"; // cas "oui" cette partie (jusqu'au break qui marque la fin) sera exécuté si $variable vaut oui
   
    instruction 1;
    instruction 2
  break;
 
  case "non";  // ici si $variable vaut "non"
  instruction 1;
  instruction 2;
  break;
 
  default:  // ici si $variable n'a aucune valeur
  instruction 1
  ...
   
}




 
les instructions du bloc "default" sont exécutées si $variable n'est pas un des cas traités (ici ni 'oui' ni 'non') pas forcément si elle n'est pas initialisée.
 
c juste une précision.. :ange:

Sh@rdar en fait le switch est une boucle qui prend une variable en paramètres (en algo de base on parle de cas).
 
donc ta boucle est découpée en cas :
 
switch ($variable) {
  case "oui"; // cas "oui" cette partie (jusqu'au break qui marque la fin) sera exécuté si $variable vaut oui
   
    instruction 1;
    instruction 2
  break;
 
  case "non";  // ici si $variable vaut "non"
  instruction 1;
  instruction 2;
  break;
 
  default:  // ici si $variable n'a aucune valeur
  instruction 1
  ...
   
}
 pigé ?

 

[edtdd]--Message édité par Sh@rdar--[/edtdd]

[SDF]Poire En + include ça inclue une page... ça la lance pas.....
 
 
 
(Euh.... Vous le dite si je dit une connerie... :D Car le PHP...)

 

[edtdd]--Message édité par [SDF]Poire--[/edtdd]

[SDF]Poire Désolé.... :sarcastic:  
Je connais le C/C++ :D  
Et un peu le PHP (1 mois 1/2 de cours  :crazy: )
Mais C une bonne question  :D  
Euh.... else if C en 2 mots :) (enfin en C ....)
PS : Les compilateurs C retransforment les switch en bloc if  :D

 

[edtdd]--Message édité par [SDF]Poire--[/edtdd]

Proov :bounce:
Proov ben on m'as dis que le switch c'était mieux :??:  
 
puisque t'a l'air de t'y connaitre, comment fo que je fasse pour que j'ai une page que je peux appeler par index.php?cat=storiesdb&page=2 ????
 
j'ai essayé ca mais ca marche pas :cry:  
 
elseif ($cat=='storiesdb' && $page=='2') {include('stories/dragonball_2.php');}
 
tu sais pourquoi ???
[SDF]Poire ex :
switch($page)  
{  
case 2 : include(..) ; break;  
case 3 : include(..); break;  
default : include(page1);break  
}

 
équivaut à  
if ($page == 2) {include(..);}
else if ($page == 3) {include(..);}
else {include(page1);}

 
Euh....... je vois pas pq ça serait + sécurisé mais bon....

 

[edtdd]--Message édité par [SDF]Poire--[/edtdd]

Proov bon il parait que ca c(est nul et que c'est pas sécurisé :heink:  
 
<?
if ($truc=='machin') {include('machin.php');}
else {include('bidule.php');}
?>

 
après des recherches ont m'as proposé de faire un "switch" avec ce code là :D  
 
switch($cat)
{
  case 'news': include(..);break;
  case 'storiedb' :  
switch($page)  
{
case 2 : include(..) ; break;
case 3 : include(..); break;
default : include(page1);break
}
 ...
}

 
j'ai rien compris :cry: qqun peut m'expliquer ? ;)

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)