Domanda

Voglio essere in grado di distinguere tra esistente di query parametri di stringa impostata su null, e parametri mancanti. Quindi le parti della domanda sono:

  • Come posso controllare se un parametro esiste nella stringa di query
  • Qual è il metodo stabilito per il passaggio di un valore nullo in una stringa di query? (Ad esempio param = null o param = (nulla))

Grazie

È stato utile?

Soluzione

isset() e 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
   }
}

Altri suggerimenti

In alternativa, utilizzare array_key_exists :

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

}

Non sono mai stato appassionato di 'convenzioni' per il passaggio di valori vuoti al server -. Sono abituato a test per la presenza di variabili, e poi li taglio e test per il vuoto, per esempio

I valori memorizzati nel $_GET e $_POST può essere solo stringhe o array, se non esplicitamente fissato in fase di esecuzione. Se si dispone di una stringa di query di query=string valore è "string" se si utilizza invece: query=null il valore sarà "null". Si noti che si tratta Perciò una stringa.

Se si invia: query=, il valore sarà "" o la stringa vuota. Prendere nota dei differenze tra isset e empty. isset sarà vero se il valore non è nullo, mentre empty sarà vero quando il valore di Esamina false. Perciò "" sarà vero per sia e isset empty.

Se si desidera solo per verificare se un parametro di stringa di query è stato impostato per il valore della stringa di "null", si può semplicemente verificare $_GET['query']=='null' (si consiglia di regolare il caso dei personaggi prima del controllo)

Con un if invece di due:

if ((isset($_REQUEST['name'])) && (!empty($_REQUEST['name'])))
{
    $name= $_REQUEST['name'];
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top