2013-03-08 149 views
2

爲什麼要使用if (isset($var)) {}而不僅僅是if ($var) {}?它似乎做同樣的事情,只是採取額外的處理。謝謝!是否有任何理由使用isset()?

+3

如果它是假的呢? – SLaks 2013-03-08 03:42:48

+2

如果'$ var'是'false','0'或''''怎麼辦? – Blender 2013-03-08 03:42:53

+4

[Weak typing in PHP:why is use isset?](http://stackoverflow.com/questions/413929/weak-typing-in-php-why-use-isset-at-all) – 2013-03-08 03:43:17

回答

6

原因

的原因是,isset()將返回布爾值,當您檢查變量的存在,並繼續不拋出一個警告。此外,還有一種可能性,即,一個變量可能具有零個值:

  1. false
  2. 0
  3. ""

但他們已經設置。


$varb = false; 
$vari = 0; 
$vars = ""; 

isset($varb) // true 
isset($vari) // true 
isset($vars) // true 

if ($varb) // false 
if ($vari) // false 
if ($vars) // false 
+4

+1 PHP5 +認爲OP的語法是不好的形式。 – 2013-03-08 03:44:19

1

您使用isset()檢查一個變量已經聲明。

另一種方法檢查$var有什麼值。因此,如果$var碰巧包含false,那麼條件將是錯誤的,但您不會確定變量是否未設置,或者變量是否包含false

相關問題