Worldscope

PHP empty() Function

Palavras-chave:

Publicado em: 05/08/2025

Understanding the PHP empty() Function

The empty() function in PHP is a language construct used to determine if a variable is considered empty. This article aims to provide a comprehensive understanding of the empty() function, including its behavior with different data types and potential pitfalls.

Fundamental Concepts / Prerequisites

To fully grasp the behavior of empty(), you should have a basic understanding of PHP's data types (boolean, integer, float, string, array, object, null, resource), type juggling, and truthiness. Truthiness refers to how PHP implicitly converts a value to a boolean when evaluated in a boolean context (e.g., within an if statement).

Core Implementation/Solution

The empty() function checks whether a variable is considered empty. The following code demonstrates its use with various data types:


<?php

$empty_string = "";
$null_value = null;
$zero_integer = 0;
$zero_float = 0.0;
$false_boolean = false;
$empty_array = array();
$non_empty_string = "Hello";
$positive_integer = 1;
$array_with_one_false_element = [false];
$array_with_one_zero_element = [0];

echo "empty(\$empty_string): " . (empty($empty_string) ? "true" : "false") . "<br>"; // Output: true
echo "empty(\$null_value): " . (empty($null_value) ? "true" : "false") . "<br>"; // Output: true
echo "empty(\$zero_integer): " . (empty($zero_integer) ? "true" : "false") . "<br>"; // Output: true
echo "empty(\$zero_float): " . (empty($zero_float) ? "true" : "false") . "<br>"; // Output: true
echo "empty(\$false_boolean): " . (empty($false_boolean) ? "true" : "false") . "<br>"; // Output: true
echo "empty(\$empty_array): " . (empty($empty_array) ? "true" : "false") . "<br>"; // Output: true
echo "empty(\$non_empty_string): " . (empty($non_empty_string) ? "true" : "false") . "<br>"; // Output: false
echo "empty(\$positive_integer): " . (empty($positive_integer) ? "true" : "false") . "<br>"; // Output: false
echo "empty(\$array_with_one_false_element): " . (empty($array_with_one_false_element) ? "true" : "false") . "<br>"; // Output: false
echo "empty(\$array_with_one_zero_element): " . (empty($array_with_one_zero_element) ? "true" : "false") . "<br>"; // Output: false

?>

Code Explanation

The code snippet demonstrates the empty() function's behavior with different data types. Here's a breakdown:

  • An empty string ("") is considered empty.
  • null is considered empty.
  • The integer 0 is considered empty.
  • The float 0.0 is considered empty.
  • false is considered empty.
  • An empty array (array()) is considered empty.
  • A non-empty string like "Hello" is *not* considered empty.
  • A positive integer like 1 is *not* considered empty.
  • An array containing a single false element is *not* considered empty. The empty() function checks if the *variable* is empty, not the values within the array.
  • An array containing a single 0 element is *not* considered empty. Same reasoning as above.

It's important to note that empty() does not generate a warning if the variable does not exist. Instead, it returns true if the variable is not set, effectively suppressing the "undefined variable" notice.

Complexity Analysis

The empty() function's time complexity is generally considered to be O(1) or constant time. It performs a direct check on the variable's value and doesn't iterate through any data structures. The space complexity is also O(1), as it doesn't require any additional memory proportional to the input size. The implementation is very lightweight.

Alternative Approaches

While empty() is generally the most convenient and efficient way to check for empty values, you could technically achieve a similar result using a combination of isset() and a boolean check. For example, instead of empty($variable), you could use !isset($variable) || !$variable. However, this approach is less concise and potentially less efficient because it involves two separate operations (checking if the variable is set and then evaluating its truthiness). Also, directly evaluating a variable that is not set generates an "undefined variable" notice.

Conclusion

The empty() function is a fundamental tool in PHP for checking if a variable is considered empty. It's crucial to understand its behavior with various data types to avoid unexpected results. While alternative approaches exist, empty() generally offers the most concise and efficient solution for this common task. Remember that it also suppresses "undefined variable" notices by returning `true` if the variable is not set.