PHP 資料類型

來源:互聯網
上載者:User
PHP支援8種未經處理資料類型。
四種標量類型:
? boolean(布爾型)
? integer(整型)
? float(浮點型,也稱作 double)
? string(字串)
兩種複合類型:
? array(數組)
? object(對象)
最後是兩種特殊類型:
? resource(資源)
? NULL(無類型)
為了確保代碼的易讀性,還有一些偽類型:
? mixed(混合類型)
? number(數字類型)
? callback(回調類型)
偽變數 $...
變數的類型通常不是由程式員設定的,確切地說,是由PHP根據該變數使用的上下文在運行時決定的。
如果想查看某個運算式的值和類型,用 var_dump() 函數。如果只是想得到一個易讀懂的類型的表達方式用於調試,用gettype() 函數。要查看某個類型,不要用 gettype(),而用 is_type 函數。如果要將一個變數強制轉換為某類型,可以對其使用強制轉換或者settype() 函數。
【boolean】
要指定一個布爾值,使用關鍵字 TRUE 或 FALSE。兩個都不區分大小寫。
轉換為布爾值
要明確地將一個值轉換成 boolean,用 (bool) 或者 (boolean) 來強制轉換。
當轉換為 boolean 時,以下值被認為是 FALSE:
? 布爾值 FALSE 本身
? 整型值 0(零)
? 浮點型值 0.0(零)
? Null 字元串,以及字串 "0"
? 不包括任何元素的數組
? 不包括任何成員變數的對象(僅 PHP 4.0 適用)
? 特殊類型 NULL(包括尚未賦值的變數)
? 從空標記產生的 SimpleXML 對象
【integer】
整型值可以使用十進位,十六進位,八進位或二進位表示,前面可以加上可選的符號(- 或者 +)。
二進位表達的 integer 自 PHP 5.4.0 起可用。要使用八進位表達,數字前必須加上0(零)。要使用十六進位表達,數字前必須加上 0x。要使用二進位表達,數字前必須加上 0b。
Integer 值的字長可以用常量 PHP_INT_SIZE來表示,自 PHP 4.4.0 和 PHP 5.0.5後,最大值可以用常量PHP_INT_MAX 來表示。
如果給定的一個數超出了 integer 的範圍,將會被解釋為 float。同樣如果執行的運算結果超出了 integer 範圍,也會返回 float。
PHP 中沒有整除的運算子。1/2 產生出 float 0.5。值可以捨棄小數部分強制轉換為 integer,或者使用 round() 函數可以更好地進行四捨五入。
轉換為整型
要明確地將一個值轉換為 integer,用 (int) 或 (integer) 強制轉換。
【float】
浮點數的精度有限。以十進位能夠精確表示的有理數如 0.1 或 0.7,無論有多少尾數都不能被內部所使用的二進位精確表示,因此不能在不丟失一點點精度的情況下轉換為二進位的格式。這就會造成混亂的結果:例如,floor((0.1+0.7)*10) 通常會返回 7 而不是預期中的 8,因為該結果內部的表示其實是類似 7.9999999999999991118...。
所以永遠不要相信浮點數結果精確到了最後一位,也永遠不要比較兩個浮點數是否相等。如果確實需要更高的精度,應該使用任意精度數學函數或者 gmp 函數。
【NULL】
特殊的 NULL 值表示一個變數沒有值。NULL 類型唯一可能的值就是 NULL。
在下列情況下一個變數被認為是 NULL:
? 被賦值為 NULL。
? 尚未被賦值。
? 被 unset()。
【類型轉換的判別】
允許的強制轉換有:
? (int), (integer) - 轉換為整形 integer
? (bool), (boolean) - 轉換為布爾類型 boolean
? (float), (double), (real) - 轉換為浮點型 float
? (string) - 轉換為字串 string
? (array) - 轉換為數組 array
? (object) - 轉換為對象 object
? (unset) - 轉換為 NULL (PHP 5)
【Variable handling 函數】
?boolval — Get the boolean value of a variable
?debug_zval_dump — Dumps a string representation of an internal zend value to output
?doubleval — floatval 的別名
?empty — 檢查一個變數是否為空白
?floatval — 擷取變數的浮點值
?get_defined_vars — 返回由所有已定義變數所組成的數組
?get_resource_type — 返回資源(resource)類型
?gettype — 擷取變數的類型
?import_request_variables — 將 GET/POST/Cookie 變數匯入到全域範圍中
?intval — 擷取變數的整數值
?is_array — 檢測變數是否是數組
?is_bool — 檢測變數是否是布爾型
?is_callable — 檢測參數是否為合法的可調用結構
?is_double — is_float 的別名
?is_float — 檢測變數是否是浮點型
?is_int — 檢測變數是否是整數
?is_integer — is_int 的別名
?is_long — is_int 的別名
?is_null — 檢測變數是否為 NULL
?is_numeric — 檢測變數是否為數字或數字字串
?is_object — 檢測變數是否是一個對象
?is_real — is_float 的別名
?is_resource — 檢測變數是否為資源類型
?is_scalar — 檢測變數是否是一個標量
?is_string — 檢測變數是否是字串
?isset — 檢測變數是否設定
?print_r — 列印關於變數的易於理解的資訊。
?serialize — 產生一個可儲存的值的表示
?settype — 設定變數的類型
?strval — 擷取變數的字串值
?unserialize — 從已儲存的表示中建立 PHP 的值
?unset — 釋放給定的變數
?var_dump — 列印變數的相關資訊

?var_export — 輸出或返回一個變數的字串表示

';}else{echo '變數$bFlag為假'.'
';}// integer$iVal = 12345678;echo '十進位的結果'.$iVal.'
';$a1 = 1234; // 十進位數$a2 = -123; // 負數$a3 = 0123; // 八位元 (等於十進位 83)$a4 = 0x1A; // 十六進位數 (等於十進位 26)$large_number = 2147483647;echo var_dump($large_number).'
'; var_dump(25/7); // float(3.5714285714286) var_dump((int) (25/7)); // int(3)// float$fVal = 3.141592653;echo '變數$fVal的值是'.$fVal.'
';// null$str1 = null;$str2 = 'str';if(is_null($st1)){echo '$str1為null'.'
';}// 調試某個類型echo gettype($str2).'
';if(is_string($str2)){echo '$str2為string類型'.'
';}// 銷毀對象unset($str2); if(is_null($st1)){echo '$str2為null'.'
';}?>


以上就介紹了PHP 資料類型,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.