En este artículo te voy a mostrar cómo saber si una cadena está vacía en PHP de distintas formas, también quitando espacios y caracteres en blanco.

Se dice que una cadena está vacía si es igual a "" pero para otros casos podría decirse que está vacía si tiene únicamente caracteres blancos como espacios o saltos de línea.

En fin, veremos cómo comprobar que una cadena está vacía en PHP.

Saber si cadena está vacía con PHP

La forma más simples comparando contra "" así:

<?php
$cadena = "";
if ($cadena === ""){
	echo "La cadena está vacía";
}

Una forma más corta es:

<?php
$cadena = "";
if (!$cadena){
	echo "La cadena está vacía";
}

Pero no solo vine a enseñarte esa simple comparación.

Saber si cadena tiene caracteres “en blanco”

Ahora veamos otro enfoque. Por ejemplo, esta cadena no se considera vacía:

$cadena = " ";

Tiene un espacio dentro de ella y aunque a nuestros ojos está vacía; para la computadora no.

<?php
$cadena = " ";
if (!$cadena){
	echo "La cadena está vacía";
}else{
	echo "La cadena NO está vacía";
}

La salida de arriba es: La cadena NO está vacía, cosa errónea

Lo que se puede hacer en esos casos es usar la función trim para quitar los caracteres invisibles o en blanco.

La siguiente cadena tiene tabulaciones y saltos de línea, pero al pasarla por trim se vuelve una cadena vacía.

<?php
$cadena = " 
				
				";
if (trim($cadena) === ""){
	echo "La cadena está vacía";
} else {
	echo "La cadena NO está vacía";
}

La función trim elimina:

  • Espacio simple
  • Tabulación
  • Salto de línea.
  • Retorno de carro.
  • El byte NUL
  • Tabulación vertical.

Nota: esta función quita esos caracteres del inicio y final de la cadena; no del centro.

trim sirve para quitar también otros caracteres, pero eso lo veremos en otro post. Mientras tanto puedes ver su documentación oficial aquí.

Si el post ha sido de tu agrado te invito a que me sigas para saber cuando haya escrito un nuevo post, haya actualizado algún sistema o publicado un nuevo software. Facebook | X | Instagram | Telegram | También estoy a tus órdenes para cualquier contratación en mi página de contacto