2009-11-13 87 views
2

php如何轉換布爾變量?php如何轉換布爾變量?

我試圖布爾值保存到一個數組:

$result["Users"]["is_login"] = true; 

但是當我使用調試is_login值爲空。 當我做條件如:

if($result["Users"]["is_login"]) 

條件總是錯誤的。

然後我試着這樣做:

$result["Users"]["is_login"] = "true"; 

和它的工作。

這沒什麼大不了,但是當我從函數返回布爾值時,我仍然必須將它們轉換爲字符串。

+1

你正在序列化,轉換爲JSON或類似之間的某個地方嗎?如果不是,不應該涉及到投射 - 你正在將一個值存儲在一個數組中並且數組不關心如果在設置$ result [「Users」] [「is_login」] = true之後,您立即將其置於if條件中,如果條件爲s會發生火災。 – 2009-11-13 03:35:12

+0

這將有助於在保存布爾值和if之間發佈所有內容。 – andyk 2009-11-13 03:48:03

回答

9

沒有投

if($result["Users"]["is_login"]) 

應該工作。 您可以嘗試使用var_dump($result["Users"]["is_login"]);以確保變量設置正確。

您可以通過使用issetmanual)函數檢查是否設置了變量。你

也可以找到here PHP如何評估布爾:

When converting to boolean, the following values are considered FALSE: 

the boolean FALSE itself 
the integer 0 (zero) 
the float 0.0 (zero) 
the empty string, and the string "0" 
an array with zero elements 
an object with zero member variables (PHP 4 only) 
the special type NULL (including unset variables) 
SimpleXML objects created from empty tags 
Every other value is considered TRUE (including any resource). 
0

沒有鑄造發生在你的榜樣。
您的問題可能在其他地方。

你介意分享一個更完整的代碼嗎?

+1

應該是一個註釋 – 2009-11-13 03:39:23

0

嘗試:


if((bool)$result["Users"]["is_login"] == true) 
{ 
    // do something 
} 

和回覆邂逅之一:

但是當我使用調試is_login值爲空。當我不喜歡條件語句:

if($result["Users"]["is_login"])

因爲你的返回值是布爾值true,在PHP它並沒有爲它的表示,因此顯示爲空(mainwhile,如果該值是一個布爾false,那麼你會看到一個0

+0

Au contraire,當輸出布爾值'false'將是空白,'true'將是'1'。 – deceze 2009-11-13 06:02:06