2011-08-31 16 views
6

che è meglio?devo usare la funzione php empty()

if (!empty($val)) { // do something } 

e

if ($val) { // do something } 

quando i test con PHP 5, tutti i casi producono gli stessi risultati. che dire di PHP 4, o hai qualche idea su quale sia la migliore?

+0

http://php.net/manual/en/types.comparisons.php – Mike

risposta

16

È necessario utilizzare il costrutto empty() quando non si è certi che la variabile esista. Se si prevede che la variabile sia impostata, utilizzare invece if ($var).

empty() è l'equivalente di !isset($var) || $var == false. Si returns vero se la variabile è:

  • "" (una stringa vuota)
  • 0 (0 come numero intero)
  • 0.0 (0 come float)
  • "0" (0 come stringa)
  • NULL
  • FALSE
  • array() (un array vuoto)
  • var $var; (una variabile dichiarata, ma senza un valore in una classe)
+1

Davvero? Non pensavo che funzionasse in quel modo. Ho sempre dovuto eseguire isset() prima di eseguire empty(). Ma l'ho appena provato e sembra funzionare bene in PHP 5.3. Bene impari qualcosa di nuovo ogni giorno. Grazie! – pthurmond

0

Leggere il manual: vuoto

() è l'opposto di (boolean) var , eccetto che nessun avviso è generato quando la variabile non è impostata.