Home » Php » php – What does $_GET['key'] return if the key is not set?

php – What does $_GET['key'] return if the key is not set?

Posted by: admin July 12, 2020 Leave a comment


What does $_GET return when the index is not set? (Couldn’t find anything in php manual about $_GET.)

I wrote this to check, if the $_GET[‘id’] isset – and if it is not, set $id to false:

<?php $id = (isset($_GET['id'])) ? $_GET['id'] : false ?>
How to&Answers:

$_GET is just an ordinary array, so it behaves exactly the same as any other array.

This means, it will return NULL to the variable and raise the “undefined index” notice when you call a non-existing index.

The only thing you need to be aware of with $_GET is that is contains unsafe (user-modifiable) data


Unset indexes have the value NULL. Accessing them will result in a notice being raised (unless your error level is set to swallow notices).


var_dump($_GET['nonexistent']); // outputs NULL



There’s an example in the manual: PHP: $_GET.

The relevant part of the example script is:

if(isset($_GET["a"])) echo "a is set\n";

That part of the script prints out “a is set” when a is passed as a parameter through the URL. http://path/to/script.php?a


If the index is not set, running isset() on that index within $_GET returns false.


$_GET is a superglobal array:

As such, it follows the rules for accessing array keys:

Attempting to access an array key which
has not been defined is the same as
accessing any other undefined
variable: an E_NOTICE-level error
message will be issued, and the result
will be NULL.