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).

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/**
* 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 === "" );
}
}
/** * 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 === "" ); } }
/**
 * 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.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$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
$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
$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