php布爾型資料類型以及流程式控制制的資料類型轉換
布爾型是最簡單的資料類型。可以為TRUE或者FALSE,關鍵字不區分大小寫。
要顯式的將一個值轉換為布爾型,用(bool)或者(boolean)來強制轉換。php在許多情況下,會進行自動類型轉換,尤其在流程式控制制語句的條件運算式計算時。
當轉換為布爾值,以下值被認為是false:
1)布爾值false;
2)整型值0(零);
3)浮點型值0.0(零);
4)空白字串和字串“0”;
5)沒有成員變數的數組;
6)沒有單元的對象(僅適用於PHP4);
7)特殊類型NULL(包括尚未設定的變數);
除此之外,所有其他值都被認為是true(包括任何資源)。
可以通過以下程式例子進行測試:
做開發過程中,在條件判斷時,一定要注意布爾值類型預設轉換的隱性危險。
下面的題目是關於這方面的:
";if("0")echo "true";elseecho "false-2"."
";if($i)echo "true";elseecho "false-3"."
";if("false")echo "true";elseecho "false-4"."
";if(false)echo "true";elseecho "false-5"."
";if(0.0)echo "true";elseecho "false-6"."
";if(php)echo "true";elseecho "false-7"."
";if("")echo "true";elseecho "false-8"."
";if(null)echo "true";elseecho "false-9"."
";if(array(12))echo "true";elseecho "false-10"."
";if(array())echo "true";elseecho "false-11"."
";/*輸出結果:false-1false-2false-3true false-5false-6true false-8false-9true false-11分析:if語句當條件不滿足(即條件運算式計算結果為false)都會返回假。php的if語句沒有then,有elseif(同else if)當轉換為boolean時候,以下值被認為是false:1)布爾值false;2)整型值0(零);3)浮點型值0.0(零);4)空白字串和字串“0”;5)沒有成員變數的數組;6)沒有單元的對象(僅適用於PHP4);7)特殊類型NULL(包括尚未設定的變數);*/?>