2013-06-30 36 views
0
if ($_POST['foo']) { 
    // bar 
} 

的就是這句話...if the $_POST['foo'] variable is a boolean, and is true...(快速而簡單)這段代碼究竟在幹什麼?

或者這話說... if the $_POST['foo'] variable isset...

或者這話說... if the $_POST['foo'] variable is not null...

或者這說的那些東西的結合?或者這是說完全不同的東西?

+0

布爾比較:http://nz1.php.net/manual/en/types.comparisons.php – 2013-06-30 23:57:51

回答

8

它正在檢查該值的真實性。如果它是0,爲空,或者該鍵不存在,那麼它是錯誤的。如果密鑰不存在,那麼它也會發出通知。

0

一般來說,進入條件語句的任何東西都必須是一個布爾值,或者它必須計算爲布爾值。

這也將是$_POST['foo']這種情況下,它將檢查變量的值是布爾值還是評估爲布爾值。任何不等於""0的字符串和數字將被視爲true,其中""0(或爲空)將被視爲false。如果變量未定義,您將獲得Undefined variable通知,並且語句也將評估爲false

1

它驗證您正在傳遞的變量的布爾值。如果變量等於布爾值true,如果它包含非空的數據(例如數組)或任何非空值(不爲零的數字),這將是真實的。

以下是幾個例子,從PHP文檔(http://ca3.php.net/manual/en/language.types.boolean.php):

var_dump((bool) "");  // bool(false) 
var_dump((bool) 1);   // bool(true) 
var_dump((bool) -2);  // bool(true) 
var_dump((bool) "foo");  // bool(true) 
var_dump((bool) 2.3e5);  // bool(true) 
var_dump((bool) array(12)); // bool(true) 
var_dump((bool) array()); // bool(false) 
var_dump((bool) "false"); // bool(true)