php布林型資料型別以及流程控制的資料型別轉換

2021-06-12 13:09:09 字數 2225 閱讀 1290

布林型是最簡單的資料型別。可以為true或者false,關鍵字不區分大小寫。

要顯式的將乙個值轉換為布林型,用(bool)或者(boolean)來強制轉換。php在許多情況下,會進行自動型別轉換,尤其在流程控制語句的條件表示式計算時。

當轉換為布林值,以下值被認為是false:

1)布林值false;

2)整型值0(零);

3)浮點型值0.0(零);

4)空白字串和字串「0」;

5)沒有成員變數的陣列;

6)沒有單元的物件(僅適用於php4);

7)特殊型別null(包括尚未設定的變數);

除此之外,所有其他值都被認為是true(包括任何資源)。

可以通過以下程式例子進行測試:

<?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.3e6); //bool(true)

var_dump((bool) array(10)); //bool(true)

var_dump((bool) array()); //bool(false)

var_dump((bool) "false"); //bool(true)

?>

做開發過程中,在條件判斷時,一定要注意布林值型別預設轉換的隱性危險。

下面的題目是關於這方面的:

<?php

/*習題*/

/*1。寫出下列**的執行結果*/

if(5<4)

echo "true";

else

echo "false-1"."

"; if("0")

echo "true";

else

echo "false-2"."

"; if($i)

echo "true";

else

echo "false-3"."

"; if("false")

echo "true";

else

echo "false-4"."

"; if(false)

echo "true";

else

echo "false-5"."

"; if(0.0)

echo "true";

else

echo "false-6"."

"; if(php)

echo "true";

else

echo "false-7"."

"; if("")

echo "true";

else

echo "false-8"."

"; if(null)

echo "true";

else

echo "false-9"."

"; if(array(12))

echo "true";

else

echo "false-10"."

"; if(array())

echo "true";

else

echo "false-11"."

";

/* 輸出結果:

false-1

false-2

false-3

true false-5

false-6

true false-8

false-9

true 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(包括尚未設定的變數);

*/

?>

資料型別及其分類2 浮點型與布林型

float型別資料跟以下要說的double型別資料都屬於浮點型別資料,與以上的資料型別不同,以上都是整型資料。float是單精度資料,可以用來表示小數,雖然表示範圍較大,但小數點後的精確度不高,占用4個位元組,表示範圍在 3.4 10 38到3.4乘以10的38次方,它的佔位符是 f,但當想要顯示n...

017 資料型別 布林型別

目錄布林型別也是一致資料型別,他出現在用於判斷條件結果,比如true 真 或false 假 true false通常情況不會直接引用,需要使用邏輯運算得到結果。print type true print true 輸出資訊 true print bool 0 print bool xucheng p...

php 資料型別 運算子及流程控制

資料型別劃分 1.標量型別 int float string bool 2.復合型別 array object 3.特殊型別 null resource 整數型別 int integer 三種進製表示法 1.十進位制 123 2.八進位制 0123 3.十六進製制 0x123 進製的轉換 十進位制轉...