Frage

Ich möchte zwischen den bestehenden Query-String-Parameter auf null unterscheiden zu können, und fehlende Parameter. So sind die Teile der Frage sind:

  • Wie kann ich, wenn ein Parameter überprüfen existiert in dem Query-String
  • Was ist die etablierte Methode einen Nullwert in einer Abfragezeichenfolge für das Bestehen? (Zum Beispiel param = null oder param = (nichts))

Danke

War es hilfreich?

Lösung

Verwenden Sie isset() und 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
   }
}

Andere Tipps

oder benutzen array_key_exists :

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

}

Ich habe noch nie auf ‚Konventionen‘ scharf gewesen für leere Werte an den Server zu übergeben. - Ich bin es gewohnt, auf das Vorhandensein von Variablen zu testen und ihnen dann Trimmen und Testen für Leere, zum Beispiel

gespeicherten Werte in $_GET und $_POST können nur Strings oder Arrays sein, sofern nicht explizit zur Laufzeit festgelegt. Wenn Sie eine Abfrage-String von query=string haben, ist der Wert "string" wenn Sie stattdessen verwenden: query=null der Wert "null" sein wird. Beachten Sie, dass es dafür eine Zeichenfolge ist.

Wenn Sie senden: query=, wird der Wert "" oder die leere Zeichenkette sein. Beachten Sie die Unterschiede zwischen isset und empty. isset wird wahr, wenn der Wert nicht null ist, während empty wahr wird, wenn der Wert auswertet zu false. Dafür "" wird für beide isset und empty wahr sein.

Wenn Sie wollen einfach nur überprüfen, ob eine Abfrage-String-Parameter auf den String-Wert von "null" eingestellt wurde, können Sie einfach $_GET['query']=='null' überprüfen (Sie können den Fall der Zeichen vor der Prüfung einzustellen)

Mit einer if-Anweisung statt zwei:

if ((isset($_REQUEST['name'])) && (!empty($_REQUEST['name'])))
{
    $name= $_REQUEST['name'];
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top