web-dev-qa-db-fra.com

Comment vérifier si un paramètre $ _GET existe mais n'a pas de valeur?

Je veux vérifier si le paramètre app existe dans l'URL, mais n'a aucune valeur.

Exemple:

my_url.php?app

J'ai essayé isset() et empty(), mais cela ne fonctionne pas. Je l’ai déjà vu et j’ai oublié comment.

9
Ben

Vide est correct. Vous voulez utiliser les deux est défini et vide ensemble

if(isset($_GET['app']) && !empty($_GET['app'])){
    echo "App = ".$_GET['app'];
} else {
    echo "App is empty";
}
21
Jay Hewitt

empty devrait fonctionner (if(empty($_GET[var]))...) car il vérifie les éléments suivants:

Les éléments suivants sont considérés comme vides:

"" (une chaîne vide) 
 0 (0 comme un entier) 
 0.0 (0 comme un flottant) 
 "0" (0 comme une chaîne) 
 NULL 
 FALSE 
 Array () (un tableau vide) 
 $ Var; (une variable déclarée, mais sans valeur)

Voici vos alternatives:

is_null - Détermine si une variable est NULL

if(is_null($_GET[var])) ...

defined - Vérifie si une constante nommée donnée existe

if(defined($_GET[var])) ...
5
Kermit
if( isset($_GET['app']) && $_GET['app'] == "")
{

}
1
84em

Vous pouvez simplement vérifier cela par array_key_exists('param', $_GET);.

Imaginez que ceci soit votre URL: http://example.com/file.php?param. Il a le paramètre de requête param, mais il n'a pas de valeur. Donc, sa valeur serait null en fait.

array_key_exists('param', $_GET); renvoie true si param existe; retourne false s'il n'existe pas du tout.

0
Ali