Variable handling Funzioni
PHP Manual

isset

(PHP 4, PHP 5)

issetVerifica se una variabile è definita e non è NULL

Descrizione

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.

Elenco dei parametri

var

La variabile da controllare.

...

Un'altra variabile ...

Valori restituiti

Restituisce TRUE se var esiste e ha un valore diverso da NULL, FALSE in caso contrario.

Log delle modifiche

Versione Descrizione
5.4.0

Il controllo su offset di stringhe non numerici ora restituisce FALSE.

Esempi

Example #1 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

?>

Example #2 isset() 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']));
?>

Risultato del precedente esempio in PHP 5.3:

bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)

Risultato del precedente esempio in PHP 5.4:

bool(false)
bool(true)
bool(true)
bool(true)
bool(false)
bool(false)

Note

Avviso

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: Poiché questo è un costrutto del linguaggio e non una funzione, non può essere chiamato con le variabili funzione

Nota:

Quando si usa isset() su proprietà di oggetti inaccessibili il metodo di overloading __isset() verrà richiamato, se dichiarato.

Vedere anche:


Variable handling Funzioni
PHP Manual