Partage
  • Partager sur Facebook
  • Partager sur Twitter

Simplification isset et != ''

Simplifier une condition avec plusieurs isset et $variable != ''

    2 décembre 2020 à 12:45:40

    if (isset($_GET['nom'])
    && isset($_GET['possesseur'])
    && isset($_GET['console'])
    && isset($_GET['prix'])
    && isset($_GET['nbre_joueurs_max'])
    && isset($_GET['commentaires']) //teste que toutes les variables existent
    && $_GET['nom'] != ''
    && $_GET['possesseur'] != ''
    && $_GET['console'] != ''
    && $_GET['prix'] != ''
    && $_GET['nbre_joueurs_max'] != ''
    && $_GET['commentaires'] != '') //teste que toutes les variables ont une valeur
    {...}
    Bonjour, je débute en php, et je voudras savoir si ce code aurait une simplification ? Merci d'avance

    -
    Edité par CameronBonsigne 2 décembre 2020 à 12:46:33

    • Partager sur Facebook
    • Partager sur Twitter
      2 décembre 2020 à 13:04:51

      Salut. Oui, possible, tu pourrais en faire une fonction par exemple:

      function areAllFieldsFilled() {
          $fields = ['nom', 'professeur', 'console', 'prix', 'nbre_joueurs_max', 'commentaires'];
          foreach($fields as $field) {
              if(!isset($_GET[$field]) OR $_GET[$field] == '')
                  return false;
          }
          return true;
      }
      
      //Et voilà comment tu l'utilises ensuite
      
      if(areAllFieldsFilled()) {
          echo 'OK';
      }
      else {
          echo 'Veuillez remplir tous les champs';
      }



      -
      Edité par kulturman 2 décembre 2020 à 13:06:07

      • Partager sur Facebook
      • Partager sur Twitter
        2 décembre 2020 à 13:06:38

        Sinon empty sert aussi

        function areAllFieldsFilled() {
            $fields = ['nom', 'professeur', 'console', 'prix', 'nbre_joueurs_max', 'commentaires']
            foreach($fields as $field) {
                if(!empty($_GET[$field]))
                    return false;
            }
            return true;
        }
         
        //Et voilà comment tu l'utilises ensuite
         
        if(areAllFieldsFilled()) {
            echo 'OK'
        }
        else {
            echo 'Veuillez remplir tous les champs';
        }

        ;)

        -
        Edité par christouphe 2 décembre 2020 à 13:06:54

        • Partager sur Facebook
        • Partager sur Twitter
          2 décembre 2020 à 13:17:19

          Mercii c'est sûr que c'est plus pratique comme ça, et je m'imaginais pas mettre 20 variables dans une condition une par une haha ;)
          • Partager sur Facebook
          • Partager sur Twitter
            2 décembre 2020 à 17:03:45

            Salut,

            Ce n'est pas intéressant de lier les superglobales dans les fonctions donc il faudrait un argument à la fonction areAllFieldsFilled, dans ce cas là tu n'as pas besoin de $_GET pour tester ta fonction

            • Partager sur Facebook
            • Partager sur Twitter
            le bienfait n'est jamais perdu
              2 décembre 2020 à 19:13:53

              dans ce style:

              <?php
              function areAllFieldsFilled(array $data) {
                  $fields = ['nom', 'professeur', 'console', 'prix', 'nbre_joueurs_max', 'commentaires']
                  foreach($fields as $field) {
                      if(!empty($data[$field]))
                          return false;
                  }
                  return true;
              }
                
              //Et voilà comment tu l'utilises ensuite
                
              if(areAllFieldsFilled($_GET)) {
                  echo 'OK'
              }
              else {
                  echo 'Veuillez remplir tous les champs';
              }



              • Partager sur Facebook
              • Partager sur Twitter

              Simplification isset et != ''

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown