isset
Verifica se una variabile è definita e non è
Verifica se una variabile è definita e non è null.
Se una variabile è stata distrutta con unset, essa non sarà
più definita. isset restituirà false se si testa
una variabile che è stata impostata a null. Da notare anche che un byte null
("\0") non è equivalente alla costante null di PHP.
Se vengono forniti parametri multipli allora isset
restituirà true solo se tutti i parametri sono definiti. La valuazione va da
sinistra verso destra e si ferma appena si incontra una variabile non definita.
var La variabile da controllare. ... Un'altra variabile ...
Restituisce true se var esiste e ha un valore diverso
da null, false in caso contrario.
Version
Description
5.4.0
Il controllo su offset di stringhe non numerici ora restituisce false.
Esempi di isset <?php $var = ''; // Questo verrà valutato come TRUE quindi il testo sarà stampato. if (isset($var)) { echo "This var is set so I will print."; } // Nei prossimi esempi si userà var_dump per stampare // il valore di ritorno di 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 ?>
Questo funziona anche per gli elementi negli array: <?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 chiave 'hello' è uguale a NULL e quindi è considerata indefinita // Se si vogliono controllare i valori delle chiavi NULL allora si deve provare: var_dump(array_key_exists('hello', $a)); // TRUE // Checking deeper array values var_dump(isset($a['pie']['a'])); // TRUE var_dump(isset($a['pie']['b'])); // FALSE var_dump(isset($a['cake']['a']['b'])); // FALSE ?>
su Offset di Stringhe
PHP 5.4 ha cambiato il comportamtento di isset quando vengono passati offset ti stringhe.
<?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']));
?>
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(false)
bool(true)
bool(true)
bool(true)
bool(false)
bool(false)
empty __isset() unset defined le tabelle di comparazione dei tipi array_key_exists is_null l'operatore @ di controllo degli errori