(PHP 4, PHP 5, PHP 7, PHP 8)
isset — Determina si una variable está declarada y es diferente de null
Determina si una variable es considerada definida,
lo que significa que está declarada y es diferente de null
.
Si una variable ha sido destruida con la función unset(), ya no se considera como definida.
isset() devolverá false
al verificar
una variable con valor null
.
Asimismo, cabe señalar que el carácter nulo ("\0"
) no
es equivalente a la constante PHP null
.
Si se proporcionan varios argumentos, entonces isset()
devolverá true
solo si todos los argumentos están definidos.
La evaluación se realiza de izquierda a derecha y se detiene en cuanto
se encuentra una variable no definida.
var
La variable a analizar.
vars
Variables adicionales.
Devuelve true
si var
existe y tiene un valor
distinto de null
. false
en caso contrario.
Ejemplo #1 Ejemplo con isset()
<?php
$var = '';
// Esto es verdadero, por lo que el texto se muestra
if (isset($var)) {
echo 'Esta variable existe, por lo que puede ser mostrada.', PHP_EOL;
}
// En los siguientes ejemplos, utilizamos var_dump() para mostrar
// el retorno de la función isset().
$a = 'test';
$b = 'anothertest';
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 funciona con arrays:
Ejemplo #2 Ejemplo de isset() con elementos de array
<?php
$a = array('test' => 1, 'bonjour' => NULL, 'pie' => array('a' => 'apple'));
var_dump(isset($a['test'])); // TRUE
var_dump(isset($a['foo'])); // FALSE
var_dump(isset($a['bonjour'])); // FALSE
// La clave 'bonjour' vale NULL y es considerada como no existente
// Si se desea verificar la existencia de esta clave, utilice esta función
var_dump(array_key_exists('bonjour', $a)); // TRUE
// Verificación de valores en profundidad
var_dump(isset($a['pie']['a'])); // TRUE
var_dump(isset($a['pie']['b'])); // FALSE
var_dump(isset($a['cake']['a']['b'])); // FALSE
?>
Ejemplo #3 isset() sobre posiciones en un 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']));
?>
El resultado del ejemplo sería:
bool(false) bool(true) bool(true) bool(true) bool(false) bool(false)
isset() funciona únicamente con variables, ya que el uso de cualquier otra cosa resultará en un error de análisis. Para verificar si una constante está definida, utilice 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:
Al utilizar esta función sobre propiedades de objeto inaccesibles, se llamará al método mágico __isset() si existe.