Question

Je veux être en mesure de faire la distinction entre les paramètres de chaîne existante la requête à null, et les paramètres manquants. Ainsi, les parties de la question sont:

  • Comment puis-je vérifier si un paramètre existe dans la chaîne de requête
  • Quelle est la méthode établie pour faire passer une valeur NULL dans une chaîne de requête? (Par exemple param = null ou param = (rien))

Merci

Était-ce utile?

La solution

isset() et empty()

if (isset($_REQUEST['param']))
{
  // param was set in the query string
   if(empty($_REQUEST['param']))
   {
     // query string had param set to nothing ie ?param=&param2=something
   }
}

Autres conseils

Ou utilisez array_key_exists :

if(array_key_exists("myParam", $_GET)) {

}

Je ne l'ai jamais été désireux de « conventions » pour passer des valeurs vides au serveur -. Je suis habitué à tester la présence de variables, puis les tailler et les tests pour le vide, par exemple

Les valeurs stockées dans $_GET et $_POST ne peut être des chaînes ou des tableaux, à moins définir explicitement lors 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 est à cet effet une chaîne.

Si vous envoyez: query=, la valeur sera "" ou la chaîne vide. Prenez note des différences entre isset et empty. isset sera vrai si la valeur est nulle, alors que empty sera vrai lorsque la valeur de evalue false. "" à cet effet sera vrai pour deux isset et empty.

Si vous voulez simplement vérifier si un paramètre de chaîne de requête a été réglée sur la valeur de chaîne de "null", vous pouvez simplement vérifier $_GET['query']=='null' (vous pouvez régler le cas 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'];
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top