68

したがって、次のような PHP コードがあります。

<body>
    The ID is 

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

</body>

今、ID を渡すhttp://localhost/myphp.php?id=26と問題なく動作しますが、ID がない場合は次のようhttp://localhost/myphp.phpに出力されます。

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

これを修正する方法を探しましたが、URL 変数が存在するかどうかを確認する方法が見つかりません。私は方法があるに違いないことを知っています。

4

7 に答える 7

152

関数を使用できissetます:

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

インデックスが存在しない場合にデフォルト値を返す便利な関数を作成できます。

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

同時に検証を試みることもできます。

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);
于 2012-08-18T15:15:11.800 に答える
18
   if (isset($_GET["id"])){
        //do stuff
    }
于 2012-08-18T15:15:44.950 に答える
9

通常は、次のようにすることをお勧めします。

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

これは、変数を他の変数に割り当てるときに、変数がif設定されていない場合にステートメントを常に使用してデフォルト値を与えるのではなく、一度にすべてのデフォルトを実行できるようにするためです。

于 2012-08-18T15:19:25.560 に答える
7

array_key_exists()組み込み関数を使用できます。

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

またはisset()組み込み関数:

if (isset($_GET['id'])) {
    echo $_GET['id'];
}
于 2012-08-18T15:17:58.813 に答える
5

あなたはPHPを使用していますisset

if (isset($_GET["id"])) {
    echo $_GET["id"];
}
于 2012-08-18T15:16:25.647 に答える
4

Use and empty()whit negation (空でない場合のテスト用)

if(!empty($_GET['id'])) {
    // if get id is not empty
}
于 2012-08-18T15:16:16.087 に答える
0

試してみてください:

if(isset($_GET['id']) && !empty($_GET['id'])){
   echo $_GET["id"];
 }
于 2016-05-16T09:31:33.633 に答える