Что возвращает $ _GET, когда индекс не задан? (Не удалось найти что-либо в руководстве php о $ _GET.)
Я написал это, чтобы проверить, если $ _GET ['id'] isset – и если это не так, установите $ id в false:
<?php $id = (isset($_GET['id'])) ? $_GET['id'] : false ?>
$ _GET – это просто обычный массив, поэтому он ведет себя точно так же, как и любой другой массив.
Это означает, что он вернет NULL переменной и поднимет уведомление «неопределенного индекса» при вызове несуществующего индекса.
Единственное, что вам нужно знать с помощью $ _GET, это то, что содержит небезопасные (изменяемые пользователем) данные
Устанавливаемые индексы имеют значение NULL. Доступ к ним приведет к тому, что уведомление будет поднято (если только ваш уровень ошибки не установлен для прочтения уведомлений).
var_dump($_GET['nonexistent']); // outputs NULL
В руководстве есть пример: PHP: $ _GET .
Соответствующая часть сценария примера:
if(isset($_GET["a"])) echo "a is set\n";
Эта часть сценария выводит «a устанавливается», когда a
передается как параметр через URL-адрес. HTTP: //path/to/script.php
Если индекс не задан, запуск isset()
для этого индекса в $_GET
возвращает false.
$_GET
– суперглобальный массив :
Таким образом, он следует правилам доступа к ключам массива:
Попытка доступа к ключу массива, который не был определен, совпадает с доступом к любой другой неопределенной переменной:
E_NOTICE
сообщение об ошибке уровняE_NOTICE
, и результат будетNULL
.