empty

Determina se una variabile è valorizzata

bool empty(mixed $var)

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 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: "" (una stringa vuota) 0 (0 come intero) 0.0 (0 come numero decimale) "0" (0 come stringa) null false array() (un array vuoto)

Version Description 5.5.0 empty ora supporta le espressioni, piuttosto che solo variabili. 5.4.0 Il controllo su offset non numerici di stringhe restituisce true.

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'; } ?>

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']));
?>

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

Nota: Quando viene utilizzata empty su proprietà di oggetti inaccessibili, il metodo di overloading __isset() sarà chiamato, se dichiarato.

isset __isset() unset array_key_exists count strlen la tabella di comparazione dei tipi