I came across an article on phpro.org about the difference between isset, empty and isnull methods that I found it informative so I’m going to summarize and re-post it here.
There are often times where you need to check for empty or null values or if a variable is set. It’s pointed out that in many circumstances the wrong function is used to make these assertions. The code may end up working; however, in some cases using the wrong function returns a value that programmer didn’t expect and leads to errors.
Actions speak much louder than words so I’ll cut to the example. The example script tests the following functions and operators:
- isset()
- empty()
- is_null()
- ==
- ===
against the following values:
- no value set
- null
- zero
- false
- numeric value
- empty string
and builds out a comparison table (see below) of the results. The notice above the table is because the isset() function is trying to check a variable that has not been initialized(Not Set).
I’ll be honest, I never knew passing a zero into the empty() function returns a true!
Anyways, the chart below ends up becoming a useful reference guide as well. The code used to produce the table is at the bottom of this post.