it-swarm.com.de

Wie kann man überprüfen, ob $ _GET existiert?

Ich habe also etwas PHP Code, der ein bisschen so aussieht:

<body>
    The ID is 

    <?php
    echo $_GET["id"] . "!";
    ?>

</body>

Wenn ich nun eine ID wie http://localhost/myphp.php?id=26 übergeben habe, funktioniert es gut, aber wenn keine ID wie http://localhost/myphp.php vorhanden ist, wird Folgendes ausgegeben:

The ID is
Notice: Undefined index: id in C:\xampp\htdocs\myphp.php on line 9
!

Ich habe nach einer Möglichkeit gesucht, dieses Problem zu beheben, finde aber keine Möglichkeit, zu überprüfen, ob eine URL-Variable vorhanden ist. Ich weiß, dass es einen Weg geben muss.

55
Doorknob

Sie können die isset-Funktion verwenden:

if(isset($_GET['id'])) {
    // id index exists
}

Sie können eine praktische Funktion erstellen, um den Standardwert zurückzugeben, wenn der Index nicht vorhanden ist:

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');

Sie können auch versuchen, es gleichzeitig zu überprüfen:

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);
127
Zbigniew
   if (isset($_GET["id"])){
        //do stuff
    }
17
Makita

Normalerweise ist es ziemlich gut zu tun:

echo isset($_GET['id']) ? $_GET['id'] : 'wtf';

Wenn Sie also die Variable anderen Variablen zuweisen, können Sie alle Standardeinstellungen in einem Atemzug vornehmen, anstatt ständig if-Anweisungen zu verwenden, um ihnen einen Standardwert zuzuweisen, wenn sie nicht festgelegt sind.

9
Sammaye

Sie können die integrierte Funktion array_key_exists() verwenden:

if (array_key_exists('id', $_GET)) {
    echo $_GET['id'];
}

oder die eingebaute Funktion isset() :

if (isset($_GET['id'])) {
    echo $_GET['id'];
}
5
Asaph

Sie sind PHP isset

Beispiel 

if (isset($_GET["id"])) {
    echo $_GET["id"];
}
5
Baba

Benutze und empty() whit Negation

if(!empty($_GET['id'])) {
    // if get id is not empty
}
4
Julien

Versuch es bitte:

if(isset($_GET['id']) && !empty($_GET['id'])){
   echo $_GET["id"];
 }
0
illeas