2013-12-14 29 views
19

Non capisco la differenza tra isset() e !empty().Qual è la differenza tra "isset()" e "! Empty()" in PHP?

Perché se una variabile è stata impostata, non è lo stesso di non essere vuota?

+3

Hai letto il manuale di per entrambi? [Qui] (http://www.php.net/isset) e [qui] (http://www.php.net/empty) – George

+2

Leggi questo http://kunststube.net/isset/ in aggiunta. Grazie @deceze – hek2mgl

+0

'isset();' verifica se la variabile è letteralmente impostata, poiché nella variabile punta effettivamente a un valore qualcosa. 'empty();' verifica se il valore della variabile punta a contenere qualcosa. – AlphaDelta

risposta

30

ISSET controlla la variabile per vedere se è stata impostata. In altre parole, controlla se la variabile è un valore diverso da NULL o non ha un valore assegnato. ISSET restituisce TRUE se la variabile esiste e ha un valore diverso da NULL. Ciò significa che le variabili assegnate a "", 0, "0" o FALSE sono impostate e pertanto sono TRUE per ISSET.

EMPTY controlla se una variabile è vuota. Empty è interpretato come: "" (una stringa vuota), 0 (numero intero), 0.0 (float) `," 0 "(stringa), NULL, FALSE, array() (una matrice vuota) e" $ var; " (Una variabile dichiarata, ma senza un valore in una classe.

Per ulteriori informazioni, vedere this article

+3

"" non è vuoto. "" è vuoto. – EresDev

+1

Puoi dare un esempio in cui l'isset è vero ma vuoto è falso. Anche un esempio in cui isset è falso ma vuoto è vero? – Unbreakable

0

isset - Determina se una variabile è impostata e non è NULL.

!empty - Determina se una variabile NON è vuota.

+0

'! Isset (NULL) === vuoto (NULL)'. – hek2mgl

+3

Quindi come viene definito "vuoto"? Spiegazione insufficiente – deceze

0

Isset ritorno false se la variabile non è stata impostata o è nulla e restituisce true se la variabile è stata impostata e non è nulla

! empty return true se la variabile è stata impostata e non è vuota. stringa pty, matrice vuota, "0", 0 e falso sono definiti come vuoti.

0

E ancora un'osservazione. empty() controlla se la variabile esiste pure. Cioè se eseguiamo empty() nella variabile che non è stata dichiarata, non riceviamo un errore, empty() restituisce 'true'. Pertanto potremmo evitare isset() se successivamente dobbiamo verificare se la variabile è vuota.

Così

isset($var) && !empty($var) 

sarà uguale a

!empty($var) 
Problemi correlati