Is there any difference between this...
if (is_null($var)) { do_something(); }
and this?
if ($var === null) { do_something(); }
Which form is better when checking whether or not a variable contains null? Are there any edge cases I should be aware of? (I initialize all my variables, so nonexistent variables are not a problem.)
The empty() function returns true if the value of a variable evaluates to false . This could mean the empty string, NULL , the integer 0 , or an array with no elements. On the other hand, is_null() will return true only if the variable has the value NULL .
?> Difference between Both: The variable $var is used to store the value of the variable and the variable $$val is used to store the reference of the variable.
PHP empty() Function The empty() function checks whether a variable is empty or not. This function returns false if the variable exists and is not empty, otherwise it returns true.
✅
is true
❌
is false
| isset | is_null | ===null | ==null | empty | |-------|----------|---------|---------|---------|---------| | null | ❌ | ✅ | ✅ | ✅ | ✅ | | true | ✅ | ❌ | ❌ | ❌ | ❌ | | false | ✅ | ❌ | ❌ | ✅ | ✅ | | 0 | ✅ | ❌ | ❌ | ✅ | ✅ | | 1 | ✅ | ❌ | ❌ | ❌ | ❌ | | \0 | ✅ | ❌ | ❌ | ❌ | ❌ | | unset | ❌ | ✅ | ✅ | ✅ | ✅ | | "" | ✅ | ❌ | ❌ | ✅ | ✅ |
empty
is equivalent to ==null
is_null
is equivalent to ===null
isset
is inverse of is_null
and ===null
An important point is empty
and isset
do not trigger a PHP warning if their parameter is an undefined variable. So if you expect that the variable or array index which you are testing upon are always defined, use the operator otherwise use the function.
Provided the variable is initialized (which you did indicate - though I'm not 100% sure if this matters in this context or not. Both solutions might throw a warning if the variable wasn't defined), they are functionally the same. I presume ===
would be marginally faster though as it removes the overhead of a function call.
It really depends on how you look at your condition.
===
is for a strict data comparison. NULL has only one 'value', so this works for comparing against NULL (which is a PHP constant of the null 'value')
is_null
is checking that the variable is of the NULL data type.
It's up to you which you choose, really.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With