isset

(PHP 4, PHP 5, PHP 7)

issetDetermina si una variable está definida y no es NULL

Descripción

isset ( mixed $var [, mixed $... ] ) : bool

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.

Parámetros

var

La variable a ser evaluada.

...

Otra variable...

Valores devueltos

Devuelve TRUE si var existe y tiene un valor distinto de NULL, FALSE de lo contrario.

Historial de cambios

Versión Descripción
5.4.0

Comprobación de indices no numéricos de strings ahora retorna FALSE.

Ejemplos

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

?>

Notas

Advertencia

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)

Ver también