Partage
  • Partager sur Facebook
  • Partager sur Twitter

switch à plusieurs variables

Sujet résolu
21 novembre 2008 à 22:33:04

Bonjour,

Dans les fonctions php, il en existe une qui est très pratique : switch.
Ceci dit, je me demandais s'il y avait moyen de l'utiliser avec plusieurs variables ?
Au lieu d'avoir :
<?
switch ($i) {
case 0:
    echo "i égale 0";
    break;
case 1:
    echo "i égale 1";
    break;
case 2:
    echo "i égale 2";
    break;
}
?>


quelque chose du genre :

<?
switch ($i && $i2) {
case 0 && 0:
    echo "i égale 0 et i2 = 0";
    break;
case 1 && 0:
    echo "i égale 1 i2 = 0";
    break;
case 2 && 1:
    echo "i égale 2 i2 = 1";
    break;
}
?>


Si oui, ça serrait peut-être intéressant de le mettre dans le tuto officiel PHP du site :-°
Bonne soirée à tous.
  • Partager sur Facebook
  • Partager sur Twitter
21 novembre 2008 à 23:20:55

tu peux en utilisant 2 switch *-)

Tu fais le premier normal,
Pui un second

En gros :

Tu regarde $i
= 1
alors => tu regarde i2
= 1
= 2
= 3
= 4
puis tu regardes $i
=2
alors => tu regarde i2
= 1
= 2
= 3
= 4
Et ainsi de suite,
Je ne pense pas que tu puisses faire autrement hélas :(
  • Partager sur Facebook
  • Partager sur Twitter
22 novembre 2008 à 0:25:33

A part avec des if/elseif/else, je vois pas... Et puis les switch imbriqués, c'est lourd, et hideux...
  • Partager sur Facebook
  • Partager sur Twitter
22 novembre 2008 à 1:04:21

thebidi,
Tu n'as parfois pas d'autre choix ^^'

Rien ne t'empêche bien sur de faire tout d'abord des if et puis un switch dans le if :p (ou l'inverse) en fonction du nombre de condition à faire dans un cas ou l'autre :p
  • Partager sur Facebook
  • Partager sur Twitter
22 novembre 2008 à 12:09:09

Merci de vos réponses,
Mais en fait, j'avais posté un autre sujet pour générer des calcules algébriques (et les solutions :-° ) ... qui est resté sans réponse définitive ...

j'avais pensé le faier avec des if, elseif, else mais mon code devenait hyper long ... pour raccourcir mon script, la fonction switch (a deux variables) m'aurait bien aidée :p .

Vous croyez qu'il existe une fonction "switch à 2 variables en php" en java ???
Ou s'il existe un language spécialisé dans les mathématiques qui aurait une fonction qui pourrait m'aider à résoudre mes calcules algébriques (ex : 1a + 2b - 3c + 2a = 3a +2b -3c ^^ ).
Les calcules algébriques sont simples mais, c'est pour une école ...

Merci d'avance.

  • Partager sur Facebook
  • Partager sur Twitter
17 août 2012 à 22:40:05

C'est vrai qu'il est un peu tard pour poster une solution, mais la meilleure solution à ce problème est de mettre les deux variables dans un tableau, et ensuite comparer le tableau dans le Switch...

<?php
$var1 = "variable1";
$var2 = "variable2";
$tableau = array($var1, $var2);

switch ($tableau){
	case array("variable1", "variable2"):
		echo "Le tableau correspond !";
	break;
	
	case array(NULL, NULL):
		echo "Le tableau ne correspond pas.";
	break;	
}
?>
  • Partager sur Facebook
  • Partager sur Twitter
17 septembre 2012 à 23:50:39

Quelques années après mais ça peut toujours servir :soleil:
Merci !
  • Partager sur Facebook
  • Partager sur Twitter
9 décembre 2015 à 13:56:16

...Et bien moi cela m'aura bien aidé !

Merci.

  • Partager sur Facebook
  • Partager sur Twitter
9 décembre 2015 à 14:53:28

C'est rigolo quand les sujet sont enterré, puis déterré, puis ré-enterré puis redéterré xD

Que la solution de gLc26 t'ai aidé tant mieux c'est pour cela que le forum existe mais pas la peine de remonté un topic alors que d'autre on des probleme plus récent :(

1a + 2b - 3c + 2a = 3a +2b -3c


Faire de l’algèbre avec juste un switch c'est ingérable parce qu'il faudrai gérer et intégrer dans le switch tout les calcul possible raccourcir son code c'est bien mais defois le bien et l'ennemi du mieux

  • Partager sur Facebook
  • Partager sur Twitter
"Il est hélas devenu évident aujourd’hui que notre technologie a dépassé notre humanité"  A.E.
22 avril 2021 à 18:00:43

J AI essayer avec UN  switch (a,b,c) s a fonctionner pour le 1 er cas mais a la suite sa NE faisait qu afficher duplicate case value je NE comprend pas prq?
  • Partager sur Facebook
  • Partager sur Twitter
22 avril 2021 à 18:05:43

@ramseschrist Bonsoir, merci de ne pas déterrer d'ancien sujet résolu. Créer le votre dans le respect des règles du forum à savoir un message commence par des règles de politesses (un bonjour, ou des salutations à la communauté et ce termine par des remerciements par avance) Un descriptif de votre problème et le code que vous avez écrit insérer sur le forum à l'aide du bouton code </>.

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter