Test HTTP Requests Tools Blog PHP Quiz API Log In With Github
Test HTTP Requests Tools Blog PHP Quiz API Log In With Github
« Return to the tutorials list
We have updated the website and our policies to make sure your privacy rights and security are respected.
Click here to learn more about the way our website handles your data.

Remove this message.

You can read this article in: English :: Español :: русский

Is_null Vs Empty Vs Isset... Una Lección Que Todos Los Programadores De PHP Deberían Aprender

Daniel Gheorghe Difficulty: 25 / 50 Tweet
empty tin can

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.

is_null()

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.

Veamos algunos ejemplos:

  
    <?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…”

isset()

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)

Esto puede ser un poco confuso pero con algunos ejemplos, verás exactamente lo que quiero decir:

  
    <?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
  

empty()

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

Aquí hay algunos ejemplos

  
    <?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.