validar vacio que not este empty como campo array php

vacio - php is null or empty



¿Cuál es la diferencia entre is_null($ var) y($ var=== null)? (7)

Acabo de ejecutar un punto de referencia rápido, probando un millón de iteraciones de cada uno. is_null tardó 8 segundos en completarse; === null tomó 1.

Entonces, una llamada a is_null es 0.000007s más lenta que una llamada a === en mi computadora.

Encontraría algo más útil para optimizar.

Mi código:

<?php $start = time(); $var = null; for ($i = 1000000; $i--; ) { is_null($var); } echo time() - $start; $start = time(); for ($i = 1000000; $i--; ) { $var === null; } echo time() - $start;

¿Hay alguna diferencia entre esto ...

if (is_null($var)) { do_something(); }

¿y esto?

if ($var === null) { do_something(); }

¿Qué forma es mejor al verificar si una variable contiene nulo? ¿Hay algún caso límite que deba conocer? (Inicializo todas mis variables, por lo que las variables inexistentes no son un problema).


Ambas son exactamente iguales, utilizo is_null porque hace que mi código sea más legible


Si parece redundante para php tener tantas funciones de tipo is_foo (), cuando solo puede utilizar un operador de comparación estándar, considere funciones llamadas programáticamente.

$arrayOfNullValues = array_filter($myArray, ''is_null'');


Siempre que la variable esté inicializada (lo que usted indicó, aunque no estoy 100% seguro de si esto importa en este contexto o no). Ambas soluciones pueden arrojar una advertencia si la variable no se definió), son funcionalmente iguales. Supongo que === sería un poco más rápido, ya que elimina la sobrecarga de una llamada a función.

Realmente depende de cómo mires tu condición.

=== es para una comparación de datos estricta. NULL tiene solo un ''valor'', por lo que esto funciona para comparar contra NULL (que es una constante de PHP del ''valor'' nulo)

is_null está comprobando que la variable sea del tipo de datos NULL.

Depende de ti lo que elijas, realmente.


Usaría la función PHP incorporada sobre la comparación del operador cada vez.


is_null($var) es aproximadamente 14 veces más lento que $var===null ... 37.8 ms vs. 2.6 ms.

Pero en realidad no sé por qué.


es true

es false

| isset | is_null | ===null | ==null | empty | |-------|---------|---------|---------|---------|---------| | null | ❌ | ✅ | ✅ | ✅ | ✅ | | true | ✅ | ❌ | ❌ | ❌ | ❌ | | false | ✅ | ❌ | ❌ | ✅ | ✅ | | 0 | ✅ | ❌ | ❌ | ✅ | ✅ | | 1 | ✅ | ❌ | ❌ | ❌ | ❌ | | /0 | ✅ | ❌ | ❌ | ❌ | ❌ | | unset | ❌ | ✅ | ✅ | ✅ | ✅ | | "" | ✅ | ❌ | ❌ | ✅ | ✅ |

Resumen: 🔸 ♦ ️🔸

  • empty equivale a ==null
  • is_null es equivalente a ===null
  • isset es inverso de is_null y ===null