Une petite question : comment raccourcir la syntaxe suivante ?
if(($dossier == 'news') or ($dossier =='processeurs') or ($dossier =='etc'))
Que penserais tu de: if (strstr("|news|processeurs|etc|","|".$dossier."|"))
Le separateur choisi | peut bien sur être n'importe quoi du moment qu'il ne fait pas partie des possibilités de $dossier.
Christophe
dwojylac.nospam
Jean-Matthieu D. wrote:
Salut à tous !
Une petite question : comment raccourcir la syntaxe suivante ?
if(($dossier == 'news') or ($dossier =='processeurs') or ($dossier =='etc'))
Car là je vais en rajouter encore pas mal et c'est lord comme syntaxe !
$test = array('news', 'processeurs', 'etc'); if in_array($test, $dossier) { suite
Merci beaucoup ! de rien
Jean-Matthieu D. PS: je reposte ici car je ne connais pas la différence entre le alt.fr.* et le fr.*. Quelqu'un peu peut-être aussi m'éclairer? l'un est modéré, l'autre pas (le alt)
-- Dominique Wojylac http://wojylac.free.fr
Jean-Matthieu D. <jeanmatthieu.d_nospam_@gmail.com> wrote:
Salut à tous !
Une petite question : comment raccourcir la syntaxe suivante ?
if(($dossier == 'news') or ($dossier =='processeurs') or ($dossier =='etc'))
Car là je vais en rajouter encore pas mal et c'est lord comme syntaxe !
$test = array('news', 'processeurs', 'etc');
if in_array($test, $dossier) {
suite
Merci beaucoup !
de rien
Jean-Matthieu D.
PS: je reposte ici car je ne connais pas la différence entre le alt.fr.*
et le fr.*. Quelqu'un peu peut-être aussi m'éclairer?
l'un est modéré, l'autre pas (le alt)
Une petite question : comment raccourcir la syntaxe suivante ?
if(($dossier == 'news') or ($dossier =='processeurs') or ($dossier =='etc'))
Car là je vais en rajouter encore pas mal et c'est lord comme syntaxe !
$test = array('news', 'processeurs', 'etc'); if in_array($test, $dossier) { suite
Merci beaucoup ! de rien
Jean-Matthieu D. PS: je reposte ici car je ne connais pas la différence entre le alt.fr.* et le fr.*. Quelqu'un peu peut-être aussi m'éclairer? l'un est modéré, l'autre pas (le alt)
Je préfère la première solution plus clean et logique. Dans les deux cas, il vaut mieux faire déclarer tes catégories dans une instruction séparée pour éditer facilement.
Je préfère la première solution plus clean et logique. Dans les deux
cas, il vaut mieux faire déclarer tes catégories dans une instruction
séparée pour éditer facilement.
Je préfère la première solution plus clean et logique. Dans les deux cas, il vaut mieux faire déclarer tes catégories dans une instruction séparée pour éditer facilement.
Bruno Desthuilliers
Salut à tous !
Une petite question : comment raccourcir la syntaxe suivante ?
if(($dossier == 'news') or ($dossier =='processeurs') or ($dossier =='etc'))
Car là je vais en rajouter encore pas mal et c'est lord Oh My !-)
Le 30 Aug 2005 16:11:49 GMT, "Jean-Matthieu D." écrivait:
Une petite question : comment raccourcir la syntaxe suivante ?
if(($dossier == 'news') or ($dossier =='processeurs') or ($dossier =='etc'))
Car là je vais en rajouter encore pas mal et c'est lord comme syntaxe !
Pas forcément la meilleure solution, mais je l'utilise dans de nombreux langages et elle se révèle assez pratique, lisible et facile à mettre en oeuvre pour les longues séries de comparaison...
$MaListe="#news#processeurs#etc1#etc2#"; if (strpos($MaListe, "#".$dossier."#")>=0)
La seule astuce est de bien séparer les valeurs à tester par un caractère quelconque qui n'est pas compris dans les mots à comparer, et encadrer de même la variable à tester . C'est pour éviter les faux positifs : genre si $dossier="etc" , sans le cadrage avec les # le retour serait >=0 puisque etc1 et etc2 existe, mais pas etc tout court pourtant.
La secconde solution, est d'utiliser un case ou switch, en php par exemple tu peux faire (et c'est plus propre que ma soluce ci-dessus) :
switch ($dossier) { "news": "processeurs": "etc1": "etc2": echo "Mon traitement si $dossier est bien reconnu"; break; default: echo "Mon traitement si $dossier n'est pas reconnu"; }
Le 30 Aug 2005 16:11:49 GMT, "Jean-Matthieu D."
<jeanmatthieu.d_nospam_@gmail.com> écrivait:
Une petite question : comment raccourcir la syntaxe suivante ?
if(($dossier == 'news') or ($dossier =='processeurs') or ($dossier =='etc'))
Car là je vais en rajouter encore pas mal et c'est lord comme syntaxe !
Pas forcément la meilleure solution, mais je l'utilise dans de nombreux
langages et elle se révèle assez pratique, lisible et facile à mettre en
oeuvre pour les longues séries de comparaison...
$MaListe="#news#processeurs#etc1#etc2#";
if (strpos($MaListe, "#".$dossier."#")>=0)
La seule astuce est de bien séparer les valeurs à tester par un caractère
quelconque qui n'est pas compris dans les mots à comparer, et encadrer de
même la variable à tester .
C'est pour éviter les faux positifs : genre si $dossier="etc" , sans le
cadrage avec les # le retour serait >=0 puisque etc1 et etc2 existe, mais
pas etc tout court pourtant.
La secconde solution, est d'utiliser un case ou switch, en php par exemple
tu peux faire (et c'est plus propre que ma soluce ci-dessus) :
switch ($dossier) {
"news":
"processeurs":
"etc1":
"etc2":
echo "Mon traitement si $dossier est bien reconnu";
break;
default:
echo "Mon traitement si $dossier n'est pas reconnu";
}
Le 30 Aug 2005 16:11:49 GMT, "Jean-Matthieu D." écrivait:
Une petite question : comment raccourcir la syntaxe suivante ?
if(($dossier == 'news') or ($dossier =='processeurs') or ($dossier =='etc'))
Car là je vais en rajouter encore pas mal et c'est lord comme syntaxe !
Pas forcément la meilleure solution, mais je l'utilise dans de nombreux langages et elle se révèle assez pratique, lisible et facile à mettre en oeuvre pour les longues séries de comparaison...
$MaListe="#news#processeurs#etc1#etc2#"; if (strpos($MaListe, "#".$dossier."#")>=0)
La seule astuce est de bien séparer les valeurs à tester par un caractère quelconque qui n'est pas compris dans les mots à comparer, et encadrer de même la variable à tester . C'est pour éviter les faux positifs : genre si $dossier="etc" , sans le cadrage avec les # le retour serait >=0 puisque etc1 et etc2 existe, mais pas etc tout court pourtant.
La secconde solution, est d'utiliser un case ou switch, en php par exemple tu peux faire (et c'est plus propre que ma soluce ci-dessus) :
switch ($dossier) { "news": "processeurs": "etc1": "etc2": echo "Mon traitement si $dossier est bien reconnu"; break; default: echo "Mon traitement si $dossier n'est pas reconnu"; }
if(($dossier == 'news') or ($dossier =='processeurs') or ($dossier =='etc'))
Que penserais tu de: if (strstr("|news|processeurs|etc|","|".$dossier."|"))
Que c'est un peu bancal : ca se généralise mal (il faut un séparateur qui ne soit présent nul par ailleurs), et surtout que tu n'écris pas vraiment ce que tu signifies (moi je lis "si le texte situé après "|$dossier|" dans "|news|processeurs|etc|"", ce qui est assez loin de l'expression de départ qui se lit bien).
-- Vincent
if(($dossier == 'news') or ($dossier =='processeurs') or ($dossier
=='etc'))
Que penserais tu de:
if (strstr("|news|processeurs|etc|","|".$dossier."|"))
Que c'est un peu bancal : ca se généralise mal (il faut un séparateur qui ne
soit présent nul par ailleurs), et surtout que tu n'écris pas vraiment ce
que tu signifies (moi je lis "si le texte situé après "|$dossier|" dans
"|news|processeurs|etc|"", ce qui est assez loin de l'expression de départ
qui se lit bien).
if(($dossier == 'news') or ($dossier =='processeurs') or ($dossier =='etc'))
Que penserais tu de: if (strstr("|news|processeurs|etc|","|".$dossier."|"))
Que c'est un peu bancal : ca se généralise mal (il faut un séparateur qui ne soit présent nul par ailleurs), et surtout que tu n'écris pas vraiment ce que tu signifies (moi je lis "si le texte situé après "|$dossier|" dans "|news|processeurs|etc|"", ce qui est assez loin de l'expression de départ qui se lit bien).
Je me suis souvent demandé si le code suivant ne serait pas plus rapide pour un tableau $tableau raisonnablement grand : $tableau = array('news'=>1, 'processeurs'=>1, 'etc'=>1); if(isset($tableau[$dossier])) { blablabla; } else { blablabla_le_retour; }
Je suppose que in_array vérifie les élements un par un alors que la recherche dans le tableau se fait rapidement, par hashage de la clé...
Je me suis souvent demandé si le code suivant ne serait pas plus rapide pour
un tableau $tableau raisonnablement grand :
$tableau = array('news'=>1, 'processeurs'=>1, 'etc'=>1);
if(isset($tableau[$dossier]))
{
blablabla;
}
else
{
blablabla_le_retour;
}
Je suppose que in_array vérifie les élements un par un alors que la
recherche dans le tableau se fait rapidement, par hashage de la clé...
Je me suis souvent demandé si le code suivant ne serait pas plus rapide pour un tableau $tableau raisonnablement grand : $tableau = array('news'=>1, 'processeurs'=>1, 'etc'=>1); if(isset($tableau[$dossier])) { blablabla; } else { blablabla_le_retour; }
Je suppose que in_array vérifie les élements un par un alors que la recherche dans le tableau se fait rapidement, par hashage de la clé...
-- Vincent
John GALLET
Bonjour,
if(($dossier == 'news') or ($dossier =='processeurs') or ($dossier =='etc')) Car là je vais en rajouter encore pas mal et c'est lord comme syntaxe ! Aux solutions proposées d'implémentation j'ajouterai une question de fond
et d'algorithmique relevant de l'analyse des données : si tous ces cas sont traités en commun, pourquoi les différencier ? Ne pourrait-on pas avantageusement les remplacer par une catégorie qu'ils composeraient ? Seule la connaissance de ton application peut y répondre.
PS: je reposte ici car je ne connais pas la différence entre le alt.fr.* et le fr.*. Quelqu'un peu peut-être aussi m'éclairer?
Oui, la FAQ de ce forum. http://faqfclphp.free.fr/ c'est dans le premier chapitre.
a++; JG
Bonjour,
if(($dossier == 'news') or ($dossier =='processeurs') or ($dossier =='etc'))
Car là je vais en rajouter encore pas mal et c'est lord comme syntaxe !
Aux solutions proposées d'implémentation j'ajouterai une question de fond
et d'algorithmique relevant de l'analyse des données : si tous ces cas
sont traités en commun, pourquoi les différencier ? Ne pourrait-on pas
avantageusement les remplacer par une catégorie qu'ils composeraient ?
Seule la connaissance de ton application peut y répondre.
PS: je reposte ici car je ne connais pas la différence entre le alt.fr.*
et le fr.*. Quelqu'un peu peut-être aussi m'éclairer?
Oui, la FAQ de ce forum. http://faqfclphp.free.fr/ c'est dans le premier
chapitre.
if(($dossier == 'news') or ($dossier =='processeurs') or ($dossier =='etc')) Car là je vais en rajouter encore pas mal et c'est lord comme syntaxe ! Aux solutions proposées d'implémentation j'ajouterai une question de fond
et d'algorithmique relevant de l'analyse des données : si tous ces cas sont traités en commun, pourquoi les différencier ? Ne pourrait-on pas avantageusement les remplacer par une catégorie qu'ils composeraient ? Seule la connaissance de ton application peut y répondre.
PS: je reposte ici car je ne connais pas la différence entre le alt.fr.* et le fr.*. Quelqu'un peu peut-être aussi m'éclairer?
Oui, la FAQ de ce forum. http://faqfclphp.free.fr/ c'est dans le premier chapitre.