empty

(PHP 4, PHP 5, PHP 7, PHP 8)

emptyDetermine whether a variable is empty

Description

empty(mixed $var): bool

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() does not generate a warning if the variable does not exist.

Parameters

var

Variable to be checked

No warning is generated if the variable does not exist. That means empty() 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, aka falsey, see conversion to boolean. Otherwise returns true.

Examples

Example #1 A simple empty() / isset() 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() on 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']));
?>

The above example will output:

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, or named arguments.

Note:

When using empty() on inaccessible object properties, the __isset() overloading method will be called, if declared.

See Also