Tablas de comparación de tipos de datos en PHP
Expresión | gettype() | empty() | is_null() | isset() | boolean : if($x) |
---|---|---|---|---|---|
$x = «»; | string | TRUE |
FALSE |
TRUE |
FALSE |
$x = null | NULL | TRUE |
TRUE |
FALSE |
FALSE |
var $x; | NULL | TRUE |
TRUE |
FALSE |
FALSE |
$x no definido | NULL | TRUE |
TRUE |
FALSE |
FALSE |
$x = array(); | array | TRUE |
FALSE |
TRUE |
FALSE |
$x = false; | boolean | TRUE |
FALSE |
TRUE |
FALSE |
$x = true; | boolean | FALSE |
FALSE |
TRUE |
TRUE |
$x = 1; | integer | FALSE |
FALSE |
TRUE |
TRUE |
$x = 42; | integer | FALSE |
FALSE |
TRUE |
TRUE |
$x = 0; | integer | TRUE |
FALSE |
TRUE |
FALSE |
$x = -1; | integer | FALSE |
FALSE |
TRUE |
TRUE |
$x = «1»; | string | FALSE |
FALSE |
TRUE |
TRUE |
$x = «0»; | string | TRUE |
FALSE |
TRUE |
FALSE |
$x = «-1»; | string | FALSE |
FALSE |
TRUE |
TRUE |
$x = «php»; | string | FALSE |
FALSE |
TRUE |
TRUE |
$x = «true»; | string | FALSE |
FALSE |
TRUE |
TRUE |
$x = «false»; | string | FALSE |
FALSE |
TRUE |
TRUE |
Validaciones de variables en PHP, caso isset
En la vida real de cualquier programador un dolor de cabeza es las validaciones de tipos de datos, vamos a ver algunas de ellas en el lenguaje PHP, en esta primera entrega veremos si una variable está definida y no es NULA..
isset — Determina si una variable está definida y no es NULL
Si una variable ha sido removida con unset(), esta ya no estará definida. isset() devolverá FALSE
si prueba una variable que ha sido definida como NULL
. También tenga en cuenta que un byte NULL
(«\0») no es equivalente a la constante NULL
de PHP.
Si son pasados varios parámetros, entonces isset() devolverá TRUE
únicamente si todos los parámetros están definidos. La evaluación se realiza de izquierda a derecha y se detiene tan pronto como se encuentre una variable no definida.
Valores devueltos
Devuelve TRUE
si var
existe y tiene un valor distinto de NULL
, FALSE
de lo contrario.
Veamos un ejemplo: $var = »;// Esto evaluará a TRUE así que el texto se imprimirá. if (isset($var)) { echo «Esta variable está definida, así que se imprimirá»; }
// En los siguientes ejemplo usaremos var_dump para imprimir, el valor devuelto por isset().
$a = «prueba»;
$b = «otraprueba»;var_dump(isset($a)); // TRUE
var_dump(isset($a, $b)); // TRUEunset ($a); //destruyo la variable..
var_dump(isset($a)); // FALSE
var_dump(isset($a, $b)); // FALSE$foo = NULL;
var_dump(isset($foo)); // FALSE
Otro ejemplo con matrices:
$a = array (‘test’ => 1, ‘hello’ => NULL, ‘pie’ => array(‘a’ => ‘apple’));
var_dump(isset($a[‘test’])); // TRUE
var_dump(isset($a[‘foo’])); // FALSE
var_dump(isset($a[‘hello’])); // FALSE// La clave hello’ es igual a NULL así que no se considera definida
// Si desea comprobar los valores NULL clave, intente:
var_dump(array_key_exists(‘hello’, $a)); // TRUE// Comprobando valores de arrays con más profunidad
var_dump(isset($a[‘pie’][‘a’])); // TRUE
var_dump(isset($a[‘pie’][‘b’])); // FALSE
var_dump(isset($a[‘cake’][‘a’][‘b’])); // FALSE