I read somewhere that the isset()
function treats an empty string as TRUE
, therefore isset()
is not an effective way to validate text inputs and text boxes from a HTML form.
So you can use empty()
to check that a user typed something.
Is it true that the isset()
function treats an empty string as TRUE
?
Then in which situations should I use isset()
? Should I always use !empty()
to check if there is something?
For example instead of
if(isset($_GET['gender']))...
Using this
if(!empty($_GET['gender']))...
isset() checks if a variable has a
value, including False
, 0
or empty
string, but not including NULL. Returns TRUE
if var exists and is not NULL; FALSE otherwise.
empty() does a reverse to what isset
does (i.e. !isset()
) and an additional check, as to whether a value is "empty" which includes an empty string, 0, NULL, false, or empty array or object
False. Returns FALSE if var is set and has a non-empty and non-zero value. TRUE otherwise