isset

Verifica se una variabile è definita e non è

bool isset(mixed $var, mixed $...)

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)

Attenzione: isset funziona solo con variabili, quindi passare qualsiasi altra cosa risulterà in un errore di analisi. Per controllare se le costanti sono definite, usare la funzione defined.
Nota: Quando si usa isset su proprietà di oggetti inaccessibili il metodo di overloading __isset() verrà richiamato, se dichiarato.

empty __isset() unset defined le tabelle di comparazione dei tipi array_key_exists is_null l'operatore @ di controllo degli errori