Page 1 sur 1

si $_GET['gal'] existe pas

Posté : 23 mars 2009, 17:50
par rufus_
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

Posté : 23 mars 2009, 18:00
par Ryle
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...

Posté : 24 mars 2009, 08:27
par rufus_
empty marche très bien merci !
oui ma constante est déclarée ailleurs

Posté : 24 mars 2009, 08:37
par furiouslol
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';
}
?>

Posté : 24 mars 2009, 09:45
par rufus_
merci