PHP check if False or Null

74,453

Solution 1

For returns from functions, you use neither isset nor empty, since those only work on variables and are simply there to test for possibly non-existing variables without triggering errors.

For function returns checking for the existence of variables is pointless, so just do:

if (!my_function()) {
    // function returned a falsey value
}

To read about this in more detail, see The Definitive Guide To PHP's isset And empty.

Solution 2

Checking variable ( a few examples )

if(is_null($x) === true) // null
if($x === null) // null
if($x === false)
if(isset($x) === false) // variable undefined or null
if(empty($x) === true) // check if variable is empty (length of 0)

Solution 3

Isset() checks if a variable has a value including ( False , 0 , or Empty string) , But not NULL. Returns TRUE if var exists; FALSE otherwise.

On the other hand the empty() function checks if the variable has an empty value empty string , 0, NULL ,or False. Returns FALSE if var has a non-empty and non-zero value.

Solution 4

ISSET checks the variable to see if it has been set, in other words, it checks to see if the variable is any value except NULL or not assigned a value. ISSET returns TRUE if the variable exists and has a value other than NULL. That means variables assigned a " ", 0, "0", or FALSE are set, and therefore are TRUE for ISSET.

EMPTY checks to see if a variable is empty. Empty is interpreted as: " " (an empty string), 0 (0 as an integer), 0.0 (0 as a float), "0" (0 as a string), NULL, FALSE, array() (an empty array), and "$var;" (a variable declared, but without a value in a class.

Solution 5

isset — Determine if a variable is set and is not NULL

$a = "test";
$b = "anothertest";

var_dump(isset($a));      // TRUE
var_dump(isset($a, $b)); // TRUE

unset ($a);

var_dump(isset($a));     // FALSE

empty — Determine whether a variable is empty

<?php
$var = 0;

// Evaluates to true because $var is empty
if (empty($var)) {
  echo '$var is either 0, empty, or not set at all';
}

// Evaluates as true because $var is set
if (isset($var)) {
  echo '$var is set even though it is empty';
}
?>
Share:
74,453

Related videos on Youtube

Harsha M V
Author by

Harsha M V

I turn ideas into companies. Specifically, I like to solve big problems that can positively impact millions of people through software. I am currently focusing all of my time on my company, Skreem, where we are disrupting the ways marketers can leverage micro-influencers to tell the Brand’s stories to their audience. People do not buy goods and services. They buy relations, stories, and magic. Introducing technology with the power of human voice to maximize your brand communication. Follow me on Twitter: @harshamv You can contact me at -- harsha [at] skreem [dot] io

Updated on December 25, 2020

Comments

  • Harsha M V
    Harsha M V over 3 years

    I also get confused how to check if a variable is false/null when returned from a function.

    When to use empty() and when to use isset() to check the condition ?

  • Gromski
    Gromski almost 12 years
    empty is not evil, you simply do not understand its use case. May I direct you to The Definitive Guide To PHP's isset And empty?
  • Gromski
    Gromski almost 12 years
    A variable cannot not have an assigned value. The value is at least null.
  • Harsha M V
    Harsha M V almost 12 years
    i am actually trying to catch a return array or false and trying to determine further what to do
  • Gromski
    Gromski almost 12 years
    OK? So $return = myfunction(); if (!$return) { // 't was false! }
  • Gromski
    Gromski over 10 years
    @tkoom Would you be happier if the syntax was more operator-like?
  • ducin
    ducin over 10 years
    @deceze, if empty is not a function, it'd be nice if it didn't pretend one. And it does and it confuses programmers, just as a lot of things does (see me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design)
  • grasevski
    grasevski almost 9 years
    Note that this also catches empty strings and empty arrays and 0 and '0', which might not be what you want
  • ToolmakerSteve
    ToolmakerSteve over 5 years
    Your comment on empty not quite correct: empty also returns true for values that are equivalent to 0.
  • mickmackusa
    mickmackusa over 3 years
    ToolmakerSteve is correct, the explanation of what empty() does is misleading for researchers.