Partage
  • Partager sur Facebook
  • Partager sur Twitter

isset() dans un if

Sujet résolu
    23 avril 2019 à 10:30:18

    Bonjour, 

    Petit questionnement, aucun soucis de mon côté mais je me demandais juste pourquoi isset() ne doit plus se trouver dans un if ?

    mon IDE (vscode) me conseille d'utiliser à la place empty() sauf que, à moins que je me trompe, c'est juste le contraire ? 

    Genre isset == !empty et vice versa. Du coup j'aimerai bien savoir pourquoi il ne faut plus l'utiliser dans un if ? Quelle est la différence entre isset() et empty() ? et à quoi sert isset() du coup vu qu'on ne peut plus l'utiliser dans un if ?

    Merci à ceux qui prendront le temps de me répondre !

    • Partager sur Facebook
    • Partager sur Twitter
      23 avril 2019 à 10:40:55

      Salut,

      isset() est contenu dans empty()  qui vérifie que la variable est set ET non vide.

      je n'en dirais pas plus, la doc est là pour ça, nous ne sommes pas des profs ;)

      -
      Edité par christouphe 23 avril 2019 à 10:41:23

      • Partager sur Facebook
      • Partager sur Twitter
        23 avril 2019 à 11:01:49

        christouphe a écrit:

        Salut,

        isset() est contenu dans empty()  qui vérifie que la variable est set ET non vide.

        je n'en dirais pas plus, la doc est là pour ça, nous ne sommes pas des profs ;)

        -
        Edité par christouphe il y a 18 minutes

        Ok ! mais pour le coup je ne vois pas en quoi cela dérange d'utiliser isset() dans un if ? 

        À moins que cela ne dérange pas et que c'est juste mon IDE qui est trop strict ?

        • Partager sur Facebook
        • Partager sur Twitter
          23 avril 2019 à 11:05:56

          "À moins que cela ne dérange pas et que c'est juste mon IDE qui est trop strict ?" => why not ^^

          Sinon il te dis quoi, tu as testé, tu essaies de mettre quoi dans ton isset() ?

          • Partager sur Facebook
          • Partager sur Twitter
            23 avril 2019 à 12:02:48

            quand je fais : 

            if (isset($maVariable){
                //mon code
            }

            Il me met dit de ne pas utiliser isset() dans une condition mais plutôt de faire un "== null"

            après, à l'exécution, tout se passe bien

            • Partager sur Facebook
            • Partager sur Twitter
              23 avril 2019 à 12:34:53

              Il te dis sa sur une variable que tu crée toi ou sur une variable globale comme $_POST ?

              Dans le premier cas je comprends sont point de vu, vu que tu defini normalement ka variable elle existe forcément et isset serait inutile 

              • Partager sur Facebook
              • Partager sur Twitter
                23 avril 2019 à 13:42:43

                quenti77 a écrit:

                Il te dis sa sur une variable que tu crée toi ou sur une variable globale comme $_POST ?

                Dans le premier cas je comprends sont point de vu, vu que tu defini normalement ka variable elle existe forcément et isset serait inutile 


                Pour le coup, si parce que en PHP on ne déclare pas les variables (locales) et ça autorise ceci :

                if($condition) { $maVariable = "OK";}

                if(isset($maVariable)) { ... }

                en java on aurait une erreur de compilation sur la 2e ligne : $maVariable n'est pas ( plus ) définie. en PHP c'st valable, donc isset garde son sens.

                Pour les IDE, certains permettent de configurer les erreurs / warning / info de compilation (eclipse, netbean ... je ne sais pas pour vscode) en tout cas, pour moi ça a du sens d'utiliser isset et / ou empty selon les cas, ça n'a pas tout à fait le même sens :) 

                • Partager sur Facebook
                • Partager sur Twitter
                  23 avril 2019 à 14:17:15

                  pifou25 a écrit:

                  quenti77 a écrit:

                  Il te dis sa sur une variable que tu crée toi ou sur une variable globale comme $_POST ?

                  Dans le premier cas je comprends sont point de vu, vu que tu defini normalement ka variable elle existe forcément et isset serait inutile 


                  Pour le coup, si parce que en PHP on ne déclare pas les variables (locales) et ça autorise ceci :

                  if($condition) { $maVariable = "OK";}

                  if(isset($maVariable)) { ... }

                  en java on aurait une erreur de compilation sur la 2e ligne : $maVariable n'est pas ( plus ) définie. en PHP c'st valable, donc isset garde son sens.

                  Pour les IDE, certains permettent de configurer les erreurs / warning / info de compilation (eclipse, netbean ... je ne sais pas pour vscode) en tout cas, pour moi ça a du sens d'utiliser isset et / ou empty selon les cas, ça n'a pas tout à fait le même sens :) 


                  Ouep mais c'est un soucis de dev quand même et peut-être que vscode et/ou les plugin qu'il a sont plus stricte. Perso, j'essaye de ne jamais avoir une variable qui n'existe que sur certaines condition. Soit elle existe soit non surtout que l'on peut les mettre à null ^^

                  PS: Et maintenant avec l'opérateur ?? on peut remplacer un peu plus les isset comme par exemple :

                  function nullOrString(bool $returnNull): ?string
                  {
                      return $returnNull ? null : 'Hello';
                  }
                  
                  $a = nullOrString(false) ?? 'Salut';
                  $b = nullOrString(true) ?? 'Bonjour';
                  
                  var_dump($a); // Affiche 'Hello'
                  var_dump($b); // Affiche 'Bonjour'

                  Ou encore :

                  <?php
                  
                  $tab = ['a' => ['b' => 1]];
                  
                  $case = 'unknown';
                  var_dump(($tab[$case] ?? [])['b'] ?? 0); // Affiche 0
                  
                  $case = 'a';
                  var_dump(($tab[$case] ?? [])['b'] ?? 0); // Affiche 1
                  



                  -
                  Edité par quenti77 23 avril 2019 à 14:26:04

                  • Partager sur Facebook
                  • Partager sur Twitter

                  isset() dans un if

                  × 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