php強制轉換類型有:1、轉換成整數;2、轉換成布林型;3、轉換成浮點型;4、轉換成字串;5、轉換成陣列;6、轉換成對象。
php強制轉換型別有:
PHP 中的型別強制轉換和C 中的非常像:在要轉換的變數之前加上用括號括起來的目標類型。
允許的強制轉換有:
(int),(integer) - 轉換為整數
#(bool ),(boolean) - 轉換成布爾型
(float),(double),(real) - 轉換成浮點型
(string) - 轉換成字串
(array) # - 轉換成物件
注意在括號內允許有空格和製表符
要明示地將一個值轉換成boolean,用(bool) 或(boolean) 來強制轉換。但是很多情況下不需要用強制轉換,因為當運算符,函數或流程控制需要一個 boolean 參數時,該值會被自動轉換。 當轉換為boolean 時,以下值被認為是FALSE:
布林值FALSE
整數值0(零)
浮點型值0.0(零)
空白字串和字串"0"
沒有成員變數的陣列
沒有單元的物件(僅適用於PHP 4)
特殊類型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.3e5); // bool(true) var_dump((bool) array(12)); // bool(true) var_dump((bool) array()); // bool(false) var_dump((bool) "false"); // bool(true) ?>2.強制轉換為整形(int)|(integer)
#要明示地將一個值轉換為integer,用(int) 或(integer)強制轉換。不過大多數情況下都不需要強制轉換,因為當運算符,函數或流程控制需要一個 integer 參數時,值會自動轉換。也可以透過函數 intval() 來將一個值轉換成整數型。 a.從bool轉換
b.從浮點數轉換 取整,超出範圍,結果不定
c.從字串轉換 參考字串轉換為數值
d.從其它型別轉換 先換成bool值,再轉換
#絕對不要將未知的分數強制轉換為integer,這樣有時會導致意外的結果。
<?php echo (int) ( (0.1+0.7) * 10 ); // 显示 7 ?> $str = "123.456abc7"; // (int)123 echo (int)$str; $str = "abc123.456"; // (int)0 $str = true; // (int)1 $str = false; // (int)03.強制轉換成浮點型(int)|(double)|(real)|doubleval()|floatval()|intval()
#精確度: 0.12345678901234 // double,real都一樣資料的遺失參考字串轉換為數值
#4.強制換為字串(string) |strval()
可以用(string) 標記或strval() 函數將一個值轉換為字串。當某表達式需要字串時,字串的轉換會在表達式範圍內自動完成。例如使用
echo() 或 print()
函數時,或將變數值與字串進行比較的時候。 布林值 TRUE 將轉換為字串 "1",而值 FALSE 將表示為 ""(即空字串)。這樣就可以隨意地在布林值和字串之間進行比較。
整數或浮點數數值在轉換成字串時,字串由表示這些數值的數字字元組成(浮點數也包含有指數部分)。
陣列將轉換成字串 "Array",因此無法透過 echo() 或 print() 函數來輸出陣列的內容。請參考下文以獲取更多提示。
物件將被轉換成字串 "Object"。如果因為調試需要,需要將物件的成員變數列印出來,請閱讀下文。如果希望得到該物件所依附的類別的名稱,請使用函數 get_class()。自 PHP 5 起,如果適合可以用 __toString() 方法。
資源類型總是以 "Resource id #1" 的格式轉換成字串,其中 1 是 PHP 在執行時間給資源指定的唯一識別。如果希望取得資源的類型,請使用函數 get_resource_type()。
NULL 將會轉換成空字串。
如以上所示,將陣列、物件或資源列印出來,並不能提供任何關於這些值本身的有用的信息。請參閱函數
print_r(),對於偵錯來說,這些是更好的列印值的方法。 <p>可以將 PHP 的值轉換為字串以永久儲存它們。這種方法稱為序列化,可以用函數<code>serialize()
來完成這個操作。如果在安裝 PHP 時建立了 WDDX 支持,也可以將 PHP 的值序列化為 XML 結構。
5. 強制轉換為陣列(array)
對於任何的類型:整數、浮點、字串、布林和資源,如果將一個值轉換為數組,將會得到一個僅有一個元素的數組(其下標為0),該元素即為此標量的值。
如果將一個物件轉換成一個數組,所得到的數組的元素為該物件的屬性(成員變數),其鍵名為成員變數名稱。
如果將一個 NULL 值轉換成數組,將會得到一個空數組。
6. 轉換為物件 (object)
如果將物件轉換成對象,它將不會有任何變化。
如果其它任何類型的值被轉換成對象,內建類別 stdClass 的一個實例將會被建立。
如果該值為 NULL,則新的實例為空。陣列轉換成物件將使鍵名成為屬性名並具有相對應的值。
對於任何其它的值,名為scalar 的成員變數將包含該值
7.轉換為資源(無法轉換)
由於資源類型變數保存有為開啟檔案、資料庫連線、圖形畫布區域等的特殊句柄,因此無法將其它類型的值轉換為資源。
注意
HTML 表單並不會傳遞整數、浮點數或布林值,它們只傳遞字串。要檢測一個字串是不是數字,可以使用 is_numeric() 函數。
在沒有定義變數 $x 的時候,諸如 if ($x) 的用法會導致一個 E_NOTICE 等級的錯誤。所以,可以考慮用 empty
相關學習推薦:PHP程式設計從入門到精通
以上是php有哪些型別強制轉換?的詳細內容。更多資訊請關注PHP中文網其他相關文章!