(PHP 4, PHP 5, PHP 7, PHP 8)
empty — Determine whether a variable is empty
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.
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.
Returns false
if var
exists and has a non-empty, non-zero value,
aka falsey, see conversion to boolean.
Otherwise returns true
.
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)
Note: Because this is a language construct and not a function, it cannot be called using variable functions.
Note:
When using empty() on inaccessible object properties, the __isset() overloading method will be called, if declared.