[PHP]Problème avec les variables globals

Bonjour,
Donc le problème est simple mais je n'y trouve aucune solution...
Alors à chaque fois que je veux utiliser une variable global genre :
if(!empty($_POST['truc'])) {
$truc=$_POST['truc'];
}

Ben le serveur m'insulte gentillement en affichant cet erreur: Notice: Undefined index:truc
Pour éviter il faut qu'à chaque fois que je m'en sers de la fonction isset o_O et ce n'est guerre trop original car je crois que la fonction empty fais l'affaire elle vérifie l'existante et même plus ?
Ya t'il une directive de configuration à utiliser par hasard pour éviter ça ?
Merci
Configuration: Windows XP
Firefox 3.0.13

3 réponses

  1. Contributeur
    "Pour éviter il faut qu'à chaque fois que je m'en sers de la fonction isset"
    Gné??

    Oui pour éviter l'erreur que tu as il faut que tu utilises la fonction isset
    Si tu veux raccourcir tu peux mettre :

    $truc = (isset($_GET['truc])) ? $_GET['truc'] : "";

    C'est équivalent à

    if ( isset($_GET['truc']) ) {
    $truc = $_GET['truc'];
    } else {
    $truc = "";
    }

    Mais c'est un peu plus rapide ! =)
    1. Contributeur
      D'après le manuel PHP, empty fonctionnerait bien aussi pour dire si une variable est définie ou pas mais elles ont quelques différences :
      Pour bien différencier les 2 fonctions, le manuel php propose un exemple clair :
      <?php
      $var = 0;

      // Evalué à vrai car $var est vide
      if (empty($var)) {
      echo '$var vaut soit 0, vide, ou pas définie du tout';
      }

      // Evalué à vrai car $var est défini
      if (isset($var)) {
      echo '$var est définie même si elle est vide';
      }
      ?>

      Voilà j'espère que ça va t'aider