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