(PHP 4, PHP 5, PHP 7)
isset — Determina si una variable está definida y no es NULL
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.
var
La variable a ser evaluada.
...
Otra variable...
Devuelve TRUE
si var
existe y tiene un valor distinto
de NULL
, FALSE
de lo contrario.
Versión | Descripción |
---|---|
5.4.0 |
Comprobación de indices no numéricos de strings ahora retorna |
Ejemplo #1 Ejemplos isset()
<?php
$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)); // TRUE
unset ($a);
var_dump(isset($a)); // FALSE
var_dump(isset($a, $b)); // FALSE
$foo = NULL;
var_dump(isset($foo)); // FALSE
?>
También trabaja con elementos en matrices:
<?php
$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 'helo' 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
?>
isset() sólo trabaja con variables, ya que pasar cualquier otra cosa dará como resultado un error de intérprete. Para comprobar si se han definidoconstantes use la función defined().
Nota: Puesto que esto es una construcción del lenguaje y no una función, no puede ser llamada usando funciones variables.
Nota:
Cuando se utiliza isset() sobre las propiedades de objetos inaccesibles, el método sobrecargado __isset() será llamado, si se declara.
Ejemplo #2 isset() en indices de String
PHP 5.4 cambia ahora el comportamiendo de isset() cuando son pasados indices de string.
<?php
$expected_array_got_string = 'somestring';
var_dump(isset($expected_array_got_string['some_key']));
var_dump(isset($expected_array_got_string[0]));
var_dump(isset($expected_array_got_string['0']));
var_dump(isset($expected_array_got_string[0.5]));
var_dump(isset($expected_array_got_string['0.5']));
var_dump(isset($expected_array_got_string['0 Mostel']));
?>
Salida del ejemplo anterior en PHP 5.3:
bool(true) bool(true) bool(true) bool(true) bool(true) bool(true)
Salida del ejemplo anterior en PHP 5.4:
bool(false) bool(true) bool(true) bool(true) bool(false) bool(false)