Friday, 3 October 2014

empty in PHP

empty — Determine whether a variable is empty

Syntax:
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() does not generate a warning if the variable does not exist.
Parameter: var
    Variable to be checked
Note:
        Prior to PHP 5.5, empty() only supports variables; anything else will result in a parse error. 
        In other words, the following will not work: empty(trim($name)). 
        Instead, use trim($name) == false.
    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. Otherwise returns TRUE.

The following things are considered to be empty:
        "" (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)
        $var; (a variable declared, but without a value)

Changelog:
Version Description
5.5.0 empty() now supports expressions, rather than only variables.
5.4.0 Checking non-numeric offsets of strings 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 5.4 changes how empty() 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)

0 comments:

Post a Comment