Подтвердить что ты не робот

Как проверить, существует ли $_GET?

Итак, у меня есть код PHP, который выглядит примерно так:

<body>
    The ID is 

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

</body>

Теперь, когда я передаю идентификатор типа http://localhost/myphp.php?id=26, он работает нормально, но если идентификатор отсутствует, как только http://localhost/myphp.php, он выводит:

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

Я искал способ исправить это, но я не могу найти способ проверить, существует ли переменная URL. Я знаю, что должен быть способ.

4b9b3361

Ответ 1

Вы можете использовать функцию 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);

Ответ 2

   if (isset($_GET["id"])){
        //do stuff
    }

Ответ 3

Обычно это неплохо делать:

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

Это так, когда вы назначаете var другим переменным, вы можете делать по умолчанию все на одном дыхании, а не постоянно использовать операторы if, чтобы просто дать им значение по умолчанию, если они не установлены.

Ответ 4

Вы используете PHP isset

Пример

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

Ответ 5

Использовать и empty() с отрицанием (для теста, если не пустым)

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

Ответ 6

Вы можете использовать array_key_exists() встроенную функцию:

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

или isset() встроенная функция:

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

Ответ 7

Попробуйте:

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