Как проверить, существует ли $ 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:xampphtdocsmyphp.php on line 9
!
Я искал способ исправить это, но я не могу найти способ проверить, существует ли переменная URL. Но я знаю, что должен быть способ.
7 ответов:
можно использовать :
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);
как правило, это достаточно хорошо, чтобы делать:
echo isset($_GET['id']) ? $_GET['id'] : 'wtf';
это так при назначении var для других переменных вы можете сделать по умолчанию все на одном дыхании вместо того, чтобы постоянно использовать
if
заявления, чтобы просто дать им значение по умолчанию, если они не установлены.
вы используете PHP isset
пример
if (isset($_GET["id"])) { echo $_GET["id"]; }
можно использовать
array_key_exists()
встроенные функции:if (array_key_exists('id', $_GET)) { echo $_GET['id']; }
или
isset()
встроенные функции:if (isset($_GET['id'])) { echo $_GET['id']; }