PHP tiene muchas maneras de lidiar con la verificación de variables. Hay funciones que verifican cada tipo como is_array, is_object o is_bool y, hay funciones que pueden ser usadas para chequear múltiples condiciones de una vez.
Hoy estaremos tratando con las diferencias entre is_null()
, empty()
e isset()
. Primero vamos a explicar que hace cada una.
Esta función verifica solamente si la variable tiene un valor nulo (null), pero no cubre casos donde la variable es indefinida o los casos donde un valor evaluaría a un valor vacío.
<?php
$myvar = NULL; is_null($myvar); // This is TRUE
$myvar = 0; is_null($myvar); // This is FALSE
$myvar = FALSE; is_null($myvar); // This is FALSE
$myvar = ''; is_null($myvar); // This is FALSE
is_null($some_undefined_var); //This is also TRUE ... notice - $some_undefined_var no existe
Por favor observa que una variable nula no es lo mismo que una variable indefinida. Aunque ambas sean evaluadas a NULL, PHP arrojara una notificación diciendo: "Notificación: Variable indefinida: X en…”
Esta función chequea si la variable está definida (es decir, existe) dentro de tu script. Sin embargo, isset() también ve variables que tenga valor null como si no estuvieran asignadas (si tomas la expresión de la función literalmente)
<?php
$myvar = NULL; isset($myvar); // This is FALSE
$myvar = 0; isset($myvar); // This is TRUE
$myvar = FALSE; isset($myvar); // This is TRUE
$myvar = ''; isset($myvar); // This is TRUE
isset($some_undefined_var); // This is FALSE
Esta función verifica si una variable evalúa lo que PHP ve como un valor “falso” (es decir, vacío). Dicho esto, una variable es vacía si es indefinida, nula, falsa, 0 o una string vacía.
Para comprender mejor como funciona empty()… deberías pensar en esta función como si fuera lo mismo que: !isset($var) || $var==false
<?php
$myvar = NULL; empty($myvar); // This is TRUE
$myvar = 0; empty($myvar); // This is TRUE
$myvar = FALSE; empty($myvar); // This is TRUE
$myvar = ''; empty($myvar); // This is TRUE
empty($some_undefined_var); // This is TRUE
Para concluir, recuerda SIEMPRE hacer tu chequeo de variables. Esto es especialmente importante en PHP, ya que no es un lenguaje de programación con códigos prediseñados por lo que el programador necesita prestarle atención especial.