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

  FORUM HardWare.fr
  Programmation

  [ PHP ] Quelqu'un peut m'expliquer la fonction switch ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ PHP ] Quelqu'un peut m'expliquer la fonction switch ?

n°69823
Proov
Art & Science
Posté le 05-11-2001 à 22:03:25  profilanswer
 

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 ? ;)

mood
Publicité
Posté le 05-11-2001 à 22:03:25  profilanswer
 

n°69827
[SDF]Poire
Vive Grumly
Posté le 05-11-2001 à 22:19:12  profilanswer
 

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]


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°69828
Proov
Art & Science
Posté le 05-11-2001 à 22:24:32  profilanswer
 

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 ???

n°69831
Proov
Art & Science
Posté le 05-11-2001 à 22:35:01  profilanswer
 

:bounce:

n°69832
[SDF]Poire
Vive Grumly
Posté le 05-11-2001 à 22:36:36  profilanswer
 

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]


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°69833
[SDF]Poire
Vive Grumly
Posté le 05-11-2001 à 22:40:01  profilanswer
 

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]


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°69834
Sh@rdar
Ex-PhPéteur
Posté le 05-11-2001 à 22:46:32  profilanswer
 

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]


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°69835
xmulder
un peu plus au nord...
Posté le 05-11-2001 à 22:54:39  profilanswer
 

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:


---------------
1km = 1024m
n°69839
ethernal
Chercheur de vérité...
Posté le 05-11-2001 à 23:40:23  profilanswer
 

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.

n°69883
Sh@rdar
Ex-PhPéteur
Posté le 06-11-2001 à 11:19:43  profilanswer
 

désolé pour les erreurs  :D  maissi vous saviez mieux fallait expliquer !  ;)


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
mood
Publicité
Posté le 06-11-2001 à 11:19:43  profilanswer
 

n°69894
gizmo
Posté le 06-11-2001 à 11:45:09  profilanswer
 

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.

n°69911
ethernal
Chercheur de vérité...
Posté le 06-11-2001 à 12:27:23  profilanswer
 

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 ;)

n°70096
Proov
Art & Science
Posté le 06-11-2001 à 20:18:22  profilanswer
 

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]

n°70116
ethernal
Chercheur de vérité...
Posté le 06-11-2001 à 21:07:04  profilanswer
 

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);

n°70144
Proov
Art & Science
Posté le 06-11-2001 à 22:46:54  profilanswer
 

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:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [ PHP ] Quelqu'un peut m'expliquer la fonction switch ?

 

Sujets relatifs
[PHP] Ralentissement a chaque appel de la page php3[PHP] Faire un menu déroulant dont la selection execute une requete??
[C] Type d'1 variable comme paramètre à 1 fonctionCherche programmeur PHP
[PHP]des " et des /////// a la fin des URL aparaissent ![ HTML / PHP ] C'est possible une image de hauteur variable ?
[PHP] foutu strings GRRRrrrr[PHP] comment ça marche "include" ?
Repertoire en PHP[PHP] Tableau multidimensionnel
Plus de sujets relatifs à : [ PHP ] Quelqu'un peut m'expliquer la fonction switch ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR