si $_GET['gal'] existe pas

Eléphant du PHP | 109 Messages

23 mars 2009, 17:50

Bonjour

Quelle est la meilleure manière de tester si
$_GET[] existe pas ou est pas vide

mon code ci-dessous marche pas trop bien

Code : Tout sélectionner

function GetGal() { $gal = GALDEF; if(isset($_GET['gal'])) { $gal = $_GET['gal']; if($gal=='') {$gal = GALDEF;} } return $gal; }
comment écrire le code s'il n'y a pas de ?gal dans l'url ou si ?gal= est vide ou si ?gal= me ramène un truc inattendu ? et retourner dans ces 3 cas une valeur par defaut GALDEF


merci pour l'aide
Modifié en dernier par rufus_ le 24 mars 2009, 08:30, modifié 3 fois.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

23 mars 2009, 18:00

La fonction empty() devrait déjà satisfaire au fait que la variable soit spécifiée ou non vide :)

Pour le truc innatendu, euh... ben malheureusement y a que toi qui peut savoir ce que tu n'attends pas ;)

Nota : GALDEF sans guillemets ou apostrophes autour fait référence à la constante GALDEF et non pas à la chaine de caractères "GALDEF". Si ta constante n'est pas définie, php interpretera alors cette valeur comme une chaine et te retournera bien "GALDEF", mais c'est pas super propre...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 109 Messages

24 mars 2009, 08:27

empty marche très bien merci !
oui ma constante est déclarée ailleurs

Eléphant du PHP | 254 Messages

24 mars 2009, 08:37

un petit rappel sur la différence entre isset et empty

<?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';
}
?>

Eléphant du PHP | 109 Messages

24 mars 2009, 09:45

merci