Welcome to my series on every PHP keyword and its usage. Today’s item: empty().

Arguably this should have been named isEmpty(), as it simply checks if a variable is “empty”, rather than modifying it. Also, note that if the variable is undefined, PHP will not display a warning when used inside of empty().

In the world of PHP, “empty” could mean the variable has not been set, has not been defined or has one of the following values:

  • ""
  • 0
  • 0.0
  • "0"
  • null
  • false
  • []

Due to the ambiguity here, I’d probably recommend your code be slightly more verbose to make it unambiguous what you’re expecting, and what you’re checking for. If your variable is a string, for instance:

1
2
3
4
5
<?php
if(($_POST["name"] ?? "") === "")
{
	// Do your thing
}

Usage

1
2
3
4
5
6
7
<?php
// Note: If the name is "", this condition will trigger as expected.
// However, it will also trigger if the name is "0".
if(empty($_POST["name"]))
{
	// Do your thing
}