2014-03-06 188 views
1

if(isset($a))if($a)if_exist($a)if($a)在php中有什麼區別?

+0

是有一個很好的學習方法就是自己做。 var_dump if語句的結果。閱讀php.net。 – Pakspul

+1

請將您所做的任何研究添加到問題中。 – AD7six

回答

5

隨着$a = false;

if ($a) {}將返回false,而if (isset($a)) {}將返回true。

我不知道你說的if_exist。 :)

編輯:請檢查@ Utkanos的答案爲一個優秀和更廣泛的解釋。 :)

+0

和** isset()**只是檢出變量爲空或否,如果其爲空則返回false。 – M98

+0

同樣適用於值爲0或空字符串:isset將爲true,但如果評估爲false,則爲純粹! – MBaas

5

if (isset($var))

檢查一個變量已經被設置,並且它具有一個非空值。

if ($var)

假定對於具有truthy值它的變量已經被設置,並檢查來代替。

PHP沒有功能if_exist。也許你正在考慮array_key_exists,如果數組包含某個鍵,則返回true。

+2

'isset'檢查變量是否已設置*且其值不爲空*。 – faintsignal

+0

忘記非零部分 - 我幾乎完全用它來檢查是否已設置變量。編輯 - 謝謝。 – Utkanos

1

isset($var)檢查閹羊可變$var不是null類型的,並且返回一個布爾truefalse

甲變量被視爲如果爲空:

  • 它已經分配了恆定NULL。
  • 它尚未設置爲任何值。
  • 它已被取消設置()。

if($var)執行一個隱含的類型轉換到$var從其原始類型爲布爾值,這意味着它檢查truthyfalsy值轉換。

要請檢查是否一個變量是truthy你可以明確的將其轉換爲一個布爾值:

$var = "foo"; 
var_dump((bool)$var); // outputs 'bool(true)' 

$var = "0"; 
var_dump((bool)$var); // outputs 'bool(false)' 

對於PHP如何處理有多種不同的變量類型的完整列表,請參閱:

http://www.php.net/manual/en/types.comparisons.php

相關問題