¿Matriz vacía en PHP? Analizamos todas las formas de verificación

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Cómo verificar si una matriz está vacía en PHP? Guía completa con ejemplos

\n\n

¡Hola, colega desarrollador! Si alguna vez has escrito código en PHP, seguramente te has encontrado con la situación en la que necesitas saber: ¿hay algo en la matriz, o está vacía como el bolsillo de un estudiante después de los exámenes? Esta tarea parece trivial, pero esconde varios escollos. Especialmente para principiantes, que pueden "caer" accidentalmente en un script debido a una verificación incorrecta.

\n\n

Hoy analizaremos todas las formas populares de verificar una matriz vacía en PHP, desde las más simples hasta las profesionales. Aprenderás en qué se diferencia empty() de isset(), por qué count() puede ser peligroso y cómo escribir código perfecto. ¡Vamos allá!

\n\n

¿Por qué es importante? Errores típicos de principiantes

\n\n

Imagina: recibes datos del usuario (por ejemplo, una lista de productos en el carrito). Si la matriz está vacía, debes mostrar el mensaje "El carrito está vacío". Si no está vacía, mostrar los productos. Parece una lógica simple. Pero esto es lo que suelen escribir los principiantes:

\n\n
// Error n.º 1: comparación con false\nif ($cart == false) {\n    echo "El carrito está vacío";\n}\n\n// Error n.º 2: conversión implícita de tipos\nif ($cart) {\n    // Este código se ejecutará si la matriz no está vacía\n}
\n\n

¿Parece que funciona? Sí, pero solo en casos simples. ¿Y si la matriz tiene claves, pero todos los valores son null o cadenas vacías? ¿O si la variable ni siquiera está definida? Ahí es donde empiezan los errores. Para evitarlos, analicemos la verificación de matriz vacía en PHP de verdad.

\n\n

Método n.º 1: La función empty() — la más popular

\n\n

Esto es lo primero que viene a la mente. La función empty() en PHP devuelve true si la variable está vacía. Para una matriz, esto significa: la matriz no existe, es igual a null o no contiene elementos.

\n\n
<?php\n$emptyArray = [];\n$nonEmptyArray = ['apple', 'banana'];\n\nvar_dump(empty($emptyArray));    // true\nvar_dump(empty($nonEmptyArray)); // false\n?>
\n\n

Ventajas: corto, legible, funciona para variables no definidas (no genera warning).

\n\n

Desventajas: empty() también considera vacíos 0, '0', '', false, null y un objeto SimpleXMLElement vacío. Si tu matriz contiene, por ejemplo, un elemento con el valor 0 — empty() dirá que está vacía. Y eso no siempre es lo que necesitas.

\n\n
<?php\n$trickyArray = [0];\nvar_dump(empty($trickyArray)); // true! Pero el elemento existe\n?>
\n\n

Conclusión: usa empty() solo cuando estés completamente seguro de que la matriz no contendrá valores "falsos" (0, cadena vacía, etc.). Para la mayoría de las tareas con formularios y entrada de usuario, es una excelente opción.

\n\n

Método n.º 2: La función count() — conteo preciso

\n\n

El segundo método más popular es verificar si la matriz está vacía con count(). Esta función devuelve la cantidad de elementos en la matriz.

\n\n
<?php\n$array1 = [];\n$array2 = ['a' => 1, 'b' => 2];\n\nif (count($array1) === 0) {\n    echo "La matriz está vacía";\n}\n\nif (count($array2) > 0) {\n    echo "La matriz no está vacía, tiene " . count($array2) . " elementos";\n}\n?>
\n\n

Ventajas: resultado absolutamente preciso. Si count() devuelve 0 — la matriz no tiene elementos. Sin sorpresas con valores falsos.

\n\n

Desventajas: para matrices muy grandes, count() puede ser más lento que empty() (aunque la diferencia suele ser insignificante). También hay que tener cuidado: si la variable no está definida, count() generará un warning. Usa la verificación isset() o @count() (pero suprimir errores es una mala práctica).

\n\n

Mejor práctica: combínalo con isset():

\n\n
<?php\nif (isset($array) && count($array)                

Blogs

Book Recommendations