Values stored in $_GET
and $_POST
can only be strings or arrays, unless explicitly set at run-time. If you have a query string of query=string
the value is "string"
if you instead use: query=null
the value will be "null"
. Note that it is therefor a string.
If you send: query=
, the value will be ""
or the empty string. Take note of the differences between isset
and empty
. isset
will be true if the value is not null, whereas empty
will be true when the value evaluates to false
. Therefor ""
will be true for both isset
and empty
.
If you just want to check if a query string parameter was set to the string value of "null"
, you can simply check $_GET['query']=='null'
(you may want to adjust the case of the characters before the check)
isset()
when usingempty()
, sinceempty()
impliesisset()
. This is especially relevant when using!empty()
. And you should probably add an explicit answer to the second part of the question. – Potts