IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

remplacer un multi - IF


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Septembre 2004
    Messages
    387
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 387
    Points : 109
    Points
    109
    Par défaut remplacer un multi - IF
    Bonjour à tous,
    j'ai un bout de code que j'aimerais améliorer et j'aimerais avoir l'avis de developpeur.
    J'ai imbriquer de nombreux if, et je pense que ce n'est pas la bonne solution.
    Quelle serais la facon la plus propre de remplacer ce bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    [...]
    if ((basename($PHP_SELF) == FILENAME_CLASSIFICATION)&&($_GET['cid']=='')){
      $urltheorique = tep_href_link(FILENAME_CLASSIFICATION, '');
    } elseif (isset($_GET['cid'])){
      $urltheorique = tep_href_link(FILENAME_CLASSIFICATION, 'cid=' . (int)
        ($_GET['cid']==56?13:
          ($_GET['cid']==54?66:
    	($_GET['cid']==65?18:
    	  ($_GET['cid']==64?52:
    	    ($_GET['cid']==63?13:
    	      ($_GET['cid']==67?20:
    		($_GET['cid']==50?13:
    		  ($_GET['cid']==71?18:
    		    ($_GET['cid']==40?7:
    		      ($_GET['cid']==62?66:$_GET['cid']
    		      )
    		    )
    		  )
    		)
    	      )
    	    )
    	  )
    	)
          )
        )
    );
    } 
    [...]
    if (($urldemande!=$urltheorique)&&($urltheorique != '')) {
      header("HTTP/1.1 301 Moved Permanently");
      header("Location: $urltheorique");
      exit();
    }
    ]
    Merci à vous

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    je viens de regarder ton code

    faut il que $_GET['cid']==56?13 soit obligatoirement vérifié avant $_GET['cid']==63?13 ?

    de plus je ne connais pas le résultat de tep_href_link(), voudrais en donner l'idée stp


    sinon rapidos

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        if(in_array( $collectionLink,$dispatcher['url'])){	  
    	$posIndex = array_search( $collectionLink,$dispatcher['url']);
        }

    Après il y'a des fonctions comme array_walk_recursive qui permettent de découvrir la valeur correspondant à une clé dans un tableau à n*n (*) clé =>valeurs et de stopper ( virtuellement) le parcours infini du tableau : cad avec la fonction tu cherche une clé, quand tu la trouve tu mets la valeur de coté et tu laisse la boucle finir son boulot ( et vis et versa tu cherche une valeur tu stop, tu garde la clef)

  3. #3
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    Le type qui t'as pondu ça doit vite aller faire une sieste
    Plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?php
     
    $cid_data = array(
       40 => 7,
       50 => 13,
       56 => 13,
       54 => 60,
       62 => 66,
       63 => 13,
       64 => 52,
       65 => 18,
       67 => 20,
       71 => 18
    );
     
    $cid = $_GET['cid'];
    $urltheorique = tep_href_link(FILENAME_CLASSIFICATION, 'cid='.(isset($cid_data[$cid]) ? $cid_data[$cid] : $cid));
     
    ?>

  4. #4
    Membre régulier
    Inscrit en
    Septembre 2004
    Messages
    387
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 387
    Points : 109
    Points
    109
    Par défaut Merci
    Je te remercie.
    c'est certain c'est beaucoup plus propre.

    Bon allez je part faire une sieste.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Multi-selection dans une ComboBox ?
    Par Moloko dans le forum MFC
    Réponses: 5
    Dernier message: 07/07/2021, 17h26
  2. Réponses: 2
    Dernier message: 03/06/2009, 17h47
  3. Tri multi-threadé
    Par Tifauv' dans le forum C
    Réponses: 8
    Dernier message: 28/06/2007, 09h00
  4. [String][replaceAll][Expression régulière]Remplacement multi
    Par cpr0 dans le forum Collection et Stream
    Réponses: 9
    Dernier message: 09/04/2004, 16h40
  5. Multi-acces a la BD Paradox
    Par _Rico_ dans le forum Paradox
    Réponses: 3
    Dernier message: 22/07/2002, 15h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo