array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'es', ), 'this' => array ( 0 => 'function.isset.php', 1 => 'isset', ), 'up' => array ( 0 => 'ref.var.php', 1 => 'Funciones de manejo de variables', ), 'prev' => array ( 0 => 'function.is-string.php', 1 => 'is_string', ), 'next' => array ( 0 => 'function.print-r.php', 1 => 'print_r', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'es', 'path' => 'reference/var/functions/isset.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
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)