Donc, j'ai du code PHP qui ressemble un peu à ceci:
<body>
The ID is
<?php
echo $_GET["id"] . "!";
?>
</body>
Maintenant, quand je passe un ID tel que http://localhost/myphp.php?id=26
, cela fonctionne bien, mais s'il n'y a pas d'ID similaire à http://localhost/myphp.php
, il génère:
The ID is
Notice: Undefined index: id in C:\xampp\htdocs\myphp.php on line 9
!
J'ai cherché un moyen de résoudre ce problème mais je ne trouve aucun moyen de vérifier si une variable d'URL existe. Je sais qu'il doit y avoir un moyen cependant.
Vous pouvez utiliser la fonction isset
:
if(isset($_GET['id'])) {
// id index exists
}
Vous pouvez créer une fonction pratique pour renvoyer la valeur par défaut si l'index n'existe pas:
function Get($index, $defaultValue) {
return isset($_GET[$index]) ? $_GET[$index] : $defaultValue);
}
// prints "invalid id" if $_GET['id'] is not set
echo Get('id', 'invalid id');
Vous pouvez également essayer de le valider en même temps:
function GetInt($index, $defaultValue) {
return isset($_GET[$index]) && ctype_digit($_GET[$index])
? (int)$_GET[$index]
: $defaultValue);
}
// prints 0 if $_GET['id'] is not set or is not numeric
echo GetInt('id', 0);
if (isset($_GET["id"])){
//do stuff
}
Normalement c'est assez bon à faire:
echo isset($_GET['id']) ? $_GET['id'] : 'wtf';
Ainsi, lorsque vous affectez la variable var à d'autres variables, vous pouvez définir les valeurs par défaut en une seule opération au lieu d'utiliser constamment les instructions if
pour leur attribuer une valeur par défaut si elles ne sont pas définies.
Vous pouvez utiliser la fonction array_key_exists()
intégrée:
if (array_key_exists('id', $_GET)) {
echo $_GET['id'];
}
ou la fonction isset()
intégrée:
if (isset($_GET['id'])) {
echo $_GET['id'];
}
Utilisation et empty()
avec négation (pour test si non vide)
if(!empty($_GET['id'])) {
// if get id is not empty
}
Essayez-le:
if(isset($_GET['id']) && !empty($_GET['id'])){
echo $_GET["id"];
}