Comprobar si una variable esta vacía

Código PHP

PHP – Validaciones – empty

Función que detectar el contenido de una variable indicando si está vacía o no,

Los espacios en blanco y las fechas a cero se consideran vacías.

El valor integer de 0, el valor true o false se consideran NO vacías. (Ya que existe un valor).

/**
 * Class HelperValidate
 */
abstract class HelperValidate
{
    /**
     * Comprueba si un valor esta vacío.
     * Espacios en blanco se consideran vacios. 
     * Fechas a cero, se consideran vacias.
     * 0, true o false se considera no vacio.
     *
     * @param mixed $valor
     *
     * @return bool
     */
    public static function isEmpty( $valor ): bool
    {
        if ( $valor === false ) {
            return false;
        }
        if ( is_object( $valor ) ) {
            return false;
        }
        if ( is_array( $valor ) && count( $valor ) === 0 ) {
            return true;
        }
        if ( is_array( $valor ) && count( $valor ) !== 0 ) {
            return false;
        }
        if( is_null( $valor ) ){
            return true;
        }
        $tmp = strtolower( trim( ''.$valor ) );
        if ( '0' === $tmp ) {
            return false;
        }

        if ( $tmp === '0000-00-00' || 
             $tmp === '0000-00-00 00:00:00'  || 
             $tmp === '00:00:00' || 
             $tmp === 'null') {
            return true;
        }
        return ( $tmp === "" );
    }

}

Las diferencias entre esta función y la función de php is_empty esta en que esta última un valor cero o false se considera vacío, cuando en realidad sí que hay un valor, el integer 0 o el booleano false.

La función se suele utilizar al obtener los datos de un POST o GET, ya que detectar si el campo contiene sólo espacios en blanco, con lo cual la función indicará que el campo está vacío.

Tambien el string «0» y el ‘0’ la función is_empty devuelve un false, cuando la variable contiene un valor, aquí.validIsEmpty devuelve un false.

Varios ejemplos de comprobaciones con la función is_empty.

$e = empty( '' );                // true
$e = HelperValidate::isEmpty( '' );       // true
 
$e = empty( '  ' );              // false <-- Diferente
$e = HelperValidate::isEmpty( '  ' );     // true
  
$e = empty( "" );                // true
$e = HelperValidate::isEmpty( "" );       // true
 
$e = empty( "   " );             // false <-- Diferente
$e = HelperValidate::isEmpty( "   " );    // true
 
$e = empty( null );              // true
$e = HelperValidate::isEmpty( null );     // true
 
$e = empty( 0 );                 // true <-- Diferente
$e = HelperValidate::isEmpty( 0 );        // false
 
$e = empty( '0' );               // true <-- Diferente
$e = HelperValidate::isEmpty( '0' );      // false
 
$e = empty( "0" );               // true <-- Diferente
$e = HelperValidate::isEmpty( "0" );      // false
 
$e = empty( true );              // false
$e = HelperValidate::isEmpty( true );     // false
 
$e = empty( false );             // true <-- Diferente
$e = HelperValidate::isEmpty( false );    // false
 
$arr = array( );
$e = empty( $arr );              // true
$e = HelperValidate::isEmpty( $arr );     // true
 
$arr = array( '0' );
$e = empty( $arr );              // false
$e = HelperValidate::isEmpty( $arr );     // false
 
$arr = array( 0 );
$e = empty( $arr );              // false
$e = HelperValidate::isEmpty( $arr );     // false