(PHP 4, PHP 5)
empty — Determina se una variabile è valorizzata
Determina se una variabile è da considerare vuota. Una variabile è considerata vuota se non esiste oppure se il suo valore è uguale a FALSE
. empty() non genera un avviso se la variabile non esiste.
var
Variabile da controllare
Nota:
Prima di PHP 5.5, empty() supporta solo variabili; qualsiasi altra cosa si traduce in un errore di analisi. In altre parole, il seguente comando non funziona: empty(trim($name)). Invece, utilizzare trim($name) == false.
Se la variabile non esiste, nessun avviso verrà generato. Questo significa che empty() è essenzialmente l'equivalente conciso di !isset($var) || $var == false.
Restituisce FALSE
se var
esiste e ha un valore non vuoto e diverso da zero.
Altrimenti restituisce TRUE
.
I seguenti valori sono considerati vuoti:
NULL
FALSE
Versione | Descrizione |
---|---|
5.5.0 |
empty() ora supporta le espressioni, piuttosto che solo variabili. |
5.4.0 |
Il controllo su offset non numerici di stringhe restituisce |
Example #1 Semplici confronti empty() / isset().
<?php
$var = 0;
// Valutata come true perché $var è vuota
if (empty($var)) {
echo '$var is either 0, empty, or not set at all';
}
// Valutata come vera perché $var è impostata
if (isset($var)) {
echo '$var is set even though it is empty';
}
?>
Example #2 empty() on String Offsets
PHP 5.4 cambia il comportamento di empty() quando vengono passati offset di stringhe.
<?php
$expected_array_got_string = 'somestring';
var_dump(empty($expected_array_got_string['some_key']));
var_dump(empty($expected_array_got_string[0]));
var_dump(empty($expected_array_got_string['0']));
var_dump(empty($expected_array_got_string[0.5]));
var_dump(empty($expected_array_got_string['0.5']));
var_dump(empty($expected_array_got_string['0 Mostel']));
?>
Risultato del precedente esempio in PHP 5.3:
bool(false) bool(false) bool(false) bool(false) bool(false) bool(false)
Risultato del precedente esempio in PHP 5.4:
bool(true) bool(false) bool(false) bool(false) bool(true) bool(true)
Nota: Poiché questo è un costrutto del linguaggio e non una funzione, non può essere chiamato con le variabili funzione
Nota:
Quando viene utilizzata empty() su proprietà di oggetti inaccessibili, il metodo di overloading __isset() sarà chiamato, se dichiarato.