EMPTY(3)								 1								  EMPTY(3)

empty - Determine whether a variable is empty

SYNOPSIS
bool empty (mixed $var) DESCRIPTION
Determine whether a variable is considered to be empty. A variable is considered empty if it does not exist or if its value equals FALSE. empty(3) does not generate a warning if the variable does not exist. PARAMETERS
o $var - Variable to be checked Note Prior to PHP 5.5, empty(3) only supports variables; anything else will result in a parse error. In other words, the follow- ing will not work: empty(trim($name)). Instead, use trim($name) == false. No warning is generated if the variable does not exist. That means empty(3) is essentially the concise equivalent to !isset($var) || $var == false. RETURN VALUES
Returns FALSE if $var exists and has a non-empty, non-zero value. Otherwise returns TRUE. The following things are considered to be empty: o "" (an empty string) o 0 (0 as an integer) o 0.0 (0 as a float) o "0" (0 as a string) o NULL o FALSE o array() (an empty array) o $var; (a variable declared, but without a value) CHANGELOG
+--------+---------------------------------------------------+ |Version | | | | | | | Description | | | | +--------+---------------------------------------------------+ | 5.5.0 | | | | | | | empty(3) now supports expressions, rather than | | | only variables. | | | | | 5.4.0 | | | | | | | Checking non-numeric offsets of strings returns | | | TRUE. | | | | +--------+---------------------------------------------------+ EXAMPLES
Example #1 A simple empty(3) / isset(3) comparison. <?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'; } ?> Example #2 empty(3) on String Offsets PHP 5.4 changes how empty(3) behaves when passed string offsets. <?php $expected_array_got_string = 'somestring'; var_dump(empty($expected_array_got_string['some_key'])); var_dump(empty($expected_array_got_string[0])); var_dump(empty($expected_array_got_string['0'])); var_dump(empty($expected_array_got_string[0.5])); var_dump(empty($expected_array_got_string['0.5'])); var_dump(empty($expected_array_got_string['0 Mostel'])); ?> Output of the above example in PHP 5.3: bool(false) bool(false) bool(false) bool(false) bool(false) bool(false) Output of the above example in PHP 5.4: bool(true) bool(false) bool(false) bool(false) bool(true) bool(true) NOTES
Note Because this is a language construct and not a function, it cannot be called using variable functions. Note When using empty(3) on inaccessible object properties, the __isset() overloading method will be called, if declared. SEE ALSO
isset(3), __isset(), unset(3), array_key_exists(3), count(3), strlen(3), The type comparison tables. PHP Documentation Group EMPTY(3)