Optimiser ce bout de code ?

benoitphp -  
jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour, je cherche un moyen de raccourcir/optimiser ce code car j'ai plus de 100 lignes a faire et je pense au final avoir la mauvaise méthode.

un exemple :
 

$success = TRUE;

if(!intval($_POST['color'])){
$success = FALSE;
}
if($_POST['color'] == 1 && $user[0]-> score < 10000 ){
$success = FALSE;
}
if($_POST['color'] == 2 && $user[0]-> score < 20000 ){
$success = FALSE;
}
if($_POST['color'] == 3 && $user[0]-> score < 30000 ){
$success = FALSE;
}
if($_POST['color'] == 4 && $user[0]-> score < 40000 ){
$success = FALSE;
}
if($_POST['color'] == 5 && $user[0]-> score < 50000 ){
$success = FALSE;
}
if($_POST['color'] == 6 && $user[0]-> score < 60000 ){
$success = FALSE;
}
if($_POST['color'] == 7 && $user[0]-> score < 70000 ){
$success = FALSE;
}
if($_POST['color'] == 8 && $user[0]-> score < 80000 ){
$success = FALSE;
}


merci

3 réponses

  1. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
     
    Peut être un petit remplacement :
    if($user[0]-> score < ($_POST['color']*10000 )) 

    0
  2. Pitet Messages postés 2845 Statut Membre 530
     
    Salut,

    Un début de solution possible :
    $success = true;
    
    if (empty($_POST['color'])) {
        $success = false;
    } else {
        if ($_POST['color'] > 0 && $_POST['color'] < 9 && $user[0]-> score < $_POST['color'] * 10000) {
            $success = false;
        }
    }
    


    Bonne journée,
    0
  3. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Bonjour,

    Sachant qu'il est préférable de récupérer "PORPREMENT" les variables AVANT de les utiliser...
    comme ceci :
    $color = !empty($_POST['color']) ? $_POST['color'] : null;
    


    Tu peux ensuite faire :
     $success = $color && $user[0]->score < $color*1000 ? false : true;
    


    nb: Ceci est l'écriture ternaire. Cela remplace les IF.
    sa syntaxe correspond à :

    $variable = condition(s) ? valeur_si_vraie : valeur_si_faux ;

    0