Je veux pouvoir faire la distinction entre les paramètres de chaîne de requête existants définis sur null et les paramètres manquants. Les parties de la question sont donc:
Merci
Ou utiliser array_key_exists
:
if(array_key_exists("myParam", $_GET)) {
}
Je n'ai jamais aimé les `` conventions '' pour passer des valeurs vides au serveur - j'ai l'habitude de tester la présence de variables, puis de les couper et de tester la vacuité, par exemple.
Valeurs stockées dans $_GET
et $_POST
ne peut être que des chaînes ou des tableaux, sauf s'il est explicitement défini au moment de l'exécution. Si vous avez une chaîne de requête de query=string
la valeur est "string"
si vous utilisez à la place: query=null
la valeur sera "null"
. Notez qu'il s'agit donc d'une chaîne.
Si tu envoies: query=
, la valeur sera ""
ou la chaîne vide. Prenez note des différences entre isset
et empty
. isset
sera vrai si la valeur n'est pas nulle, tandis que empty
sera vrai lorsque la valeur sera évaluée à false
. À cet effet ""
sera vrai pour à la fois isset
et empty
.
Si vous souhaitez simplement vérifier si un paramètre de chaîne de requête a été défini sur la valeur de chaîne de "null"
, vous pouvez simplement vérifier $_GET['query']=='null'
(vous voudrez peut-être ajuster la casse des caractères avant la vérification)
Avec une instruction if au lieu de deux:
if ((isset($_REQUEST['name'])) && (!empty($_REQUEST['name'])))
{
$name= $_REQUEST['name'];
}