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)