Alternative plus rapide à un switch php

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par sff, 5 Décembre 2009.

  1. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    531
    J'aime reçus:
    0
    Bonsoir,

    Dans mon fonction, je possède un switch relativement long. J'aimerais savoir si il n'existe pas une alternative qui serait plus rapide à l'exécution que le switch ou que la fonction tout simplement.

    Merci

    Code:
    function special($special) {// Fonction francise special.
    
    	switch ($special) {
    	case 'strength': $special0 ='force'; break;
    	case 'dexterity': $special0 ='dextérité'; break;
    	case 'attackpower': $special0 ='pouvoir d\'attaque'; break;
    	case 'defensepower': $special0 ='pouvoir de défense'; break;
    	case 'goldbonus': $special0 ='bonus rubis'; break;
    	case 'spellbonus': $special0 ='bonus sorts'; break;
    	case 'expbonus': $special0 ='expérience bonus'; break;
    	case 'currenthp': $special0 ='HP'; break;
    	case 'currentmp': $special0 ='MP'; break;
    	case 'currenttp': $special0 ='TP'; break;
    	case 'maxhp': $special0 ='HP Max'; break;
    	case 'maxmp': $special0 ='MP Max'; break;
    	case 'maxtp': $special0 ='TP Max'; break;
    		default : $special0 ='points HP, MP et TP';
    
    	}
    
    	return $special;
    }
     
  2. Julia41
    Julia41 WRInaute passionné
    Inscrit:
    31 Août 2007
    Messages:
    1 779
    J'aime reçus:
    0
  3. sky
    sky WRInaute discret
    Inscrit:
    3 Mars 2003
    Messages:
    229
    J'aime reçus:
    0
    Bonjour

    Julia41 propose un truc beaucoup plus rapide qu'un switch, un array.

    Un truc genre :

    Code:
    <?php
    // tu place ton array de "conf" quelquepart
    $mes_Conditions = array(
       'strength'       => 'force',
       'dexterity'      => 'dextérité',
       'attackpower'    => 'pouvoir d\'attaque',
       'defensepower'   => 'pouvoir de défense',
       'goldbonus'      => 'bonus rubis',
       'spellbonus'     => 'bonus sorts',
       'expbonus'       => 'expérience bonus',
       'currenthp'      => 'HP',
       'currentmp'      => 'MP',
       'currenttp'      => 'TP',
       'maxhp'          => 'HP Max',
       'maxmp'          => 'MP Max',
       'maxtp'          => 'TP Max'
    );
    
    // fonction special qui test si la clef existe
    function special($mes_Conditions, $special='') {
        
        // la valeur par défaut si la clef n'existe pas
        $special0 = 'points HP, MP et TP';
        
        if(isset($mes_Conditions[$special]))
            $special0 = $mes_Conditions[$special];
        
        return $special0;
    }
    ?>
     
  4. Julia41
    Julia41 WRInaute passionné
    Inscrit:
    31 Août 2007
    Messages:
    1 779
    J'aime reçus:
    0
    Voilà, désolé j'étais à l'apéro alors je voulais pas dire de merdes hier soir.
    Mais bon, l'array devrait quand même être moins performant au final, ça se benchmark quand même pour voir, mais la déclaration en array peut être pas mal aussi, tout dépends de l'utilisation.
     
  5. sky
    sky WRInaute discret
    Inscrit:
    3 Mars 2003
    Messages:
    229
    J'aime reçus:
    0
    Bonjour Julia,

    Je ne suis pas en effet 100% certains que l'array soit beaucoup plus rapide... mais, je voie beaucoup plus que juste la rapidité de la déclaration : en utilisant un array, on rend cette fonction indépendante, plus besoin d'y revenir pour ajouter des actions / conditions. C'est tout de même pas négligeable :)

    Sky
     
Chargement...
Similar Threads - Alternative rapide switch Forum Date
Navigateur Brave : plus rapide que chrome et réelle alternative à Adsense Monétisation d'un site web 13 Juillet 2019
Alternative Adsense AdSense 18 Avril 2020
Alternative à l'iframe Référencement Google 11 Février 2020
Alternative à soundcloud Demandes d'avis et de conseils sur vos sites 12 Juillet 2019
Alternative à LOAD DATA LOCAL INFILE Développement d'un site Web ou d'une appli mobile 13 Mars 2019
Alternative à Wordfence ? Administration d'un site Web 30 Juillet 2018
Alternative google news Google : l'entreprise, les sites web, les services 7 Février 2018
Alternative langue et contenu non traduit Débuter en référencement 6 Juillet 2017
Alternative outil de planification des mots clés AdWords 11 Septembre 2016
Alternative à Google Site Search Google : l'entreprise, les sites web, les services 26 Juillet 2016