[PHP]Problème avec les variables globals

abdelkaderg54 Messages postés 69 Statut Membre -  
Passarinho44 Messages postés 977 Statut Contributeur -
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
A voir également:

3 réponses

Passarinho44 Messages postés 977 Statut Contributeur 132
 
"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 ! =)
0
abdelkaderg54 Messages postés 69 Statut Membre
 
Oui mais un empty ne suffit pas ?
0
Passarinho44 Messages postés 977 Statut Contributeur 132
 
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
0