Problème avec switch en php
playboy-1990
Messages postés
458
Date d'inscription
Statut
Membre
Dernière intervention
-
A.Nonymous -
A.Nonymous -
Bonjour,
Je voudrais savoir comment puis-je faire une condition avec switch et la fonction file_exits()
Voici mon exemple :
Merci
Je voudrais savoir comment puis-je faire une condition avec switch et la fonction file_exits()
Voici mon exemple :
<?php define ('__MONFICHIER__', '/var/www/library/'); switch (??? je mets quoi ?) { case file_exists( __MONFICHIER__ . $file_name): include_once (__MONFICHIER__ . $file_name); break; case file_exists(__MONFICHIER__ . 'Smarty/' . $file_name): include_once (__MONFICHIER__ . 'Smarty/' . $file_name); break; case file_exists(__MONFICHIER__ . 'lib/' . $file_name): include_once __MONFICHIER__ . 'lib/' . $file_name; break; case file_exists(__MONFICHIER__ .'database/' . $file_name): include_once (__MONFICHIER__ .'database/' . $file_name); break; default: return false; }
Merci
A voir également:
- Problème avec switch en php
- Android switch - Accueil - Android
- Easy php - Télécharger - Divers Web & Internet
- Smart switch pc - Télécharger - Divers Bureautique
- Switch off - Télécharger - Divers Utilitaires
- Logiciel switch - Télécharger - Conversion & Extraction
3 réponses
Salut.
Le switch sert à comparer la valeur de ce que tu mets entre parenthèse.
Pour plusieurs conditions, il faut faire plusieurs structure conditionnelles.
Donc plusieurs switch ou plusieurs if/else.
Le switch sert à comparer la valeur de ce que tu mets entre parenthèse.
Pour plusieurs conditions, il faut faire plusieurs structure conditionnelles.
Donc plusieurs switch ou plusieurs if/else.
switch(file_exists('fichier1')) { case true: echo 'Ok'; break; case false: echo 'Erreur'; break; } if(file_exists('fichier2')) { echo 'Ok'; } else { echo 'Erreur'; }
switch(true)
Un tel "switch" s'arrêtera au 1er case dont la valeur équivaudrait "true" ( pas obligatoirement de même type ), où, si présent, exécuterait "default" si aucun "case" vrai
Ainsi :
case false:
case '':
case null:
// Pas exécuté
break;
case 1:
case 'A.nonymous':
// Exécuté
Un tel "switch" s'arrêtera au 1er case dont la valeur équivaudrait "true" ( pas obligatoirement de même type ), où, si présent, exécuterait "default" si aucun "case" vrai
Ainsi :
case false:
case '':
case null:
// Pas exécuté
break;
case 1:
case 'A.nonymous':
// Exécuté
Merci beaucoup pour vos aides
J'avais pu comprendre que le switch pouvais remplacer les conditions if, else
mais comme je vois il n'est pas toujours possible de faire la même chose avec switch
J'avais pu comprendre que le switch pouvais remplacer les conditions if, else
mais comme je vois il n'est pas toujours possible de faire la même chose avec switch
Le switch est à utiliser lorsque tu compares plusieurs fois une même variable (ou une fonction) avec différente valeur. Par exemple :
Devient :
if($var == 'Valeur 1') { } elseif ($var == 'Valeur 2') { } else { // Default du switch }
Devient :
switch($var) { case 'Valeur 1': // ... break; case 'Valeur 2': //.... break; default: // ... break; }
La cas "switch(true)" est un usage particulier qui peut sans mal remplacer une structure if/elseif/else complexe.
L'usage du switch décrit par avion-f16 est effectivement l'usage conventionnel.
Le côté pratique du switch(true) comparé à une structure en "elseif" est qu'il est plus rapide de créer un nouveau cas, mais c'est un point de vue personnel ;)
L'usage d'un switch(true) dans le cas suivant ne serait cependant pas pertinent, même si possible :
switch(true)
{
case $var == 'Valeur 1':
// ...
break;
case $var == 'Valeur 2':
// ...
break;
default:
}
L'usage du switch décrit par avion-f16 est effectivement l'usage conventionnel.
Le côté pratique du switch(true) comparé à une structure en "elseif" est qu'il est plus rapide de créer un nouveau cas, mais c'est un point de vue personnel ;)
L'usage d'un switch(true) dans le cas suivant ne serait cependant pas pertinent, même si possible :
switch(true)
{
case $var == 'Valeur 1':
// ...
break;
case $var == 'Valeur 2':
// ...
break;
default:
}