PHP(3):數據類型

PHP(3):數據類型

一、 數據類型

數據類型是具有相同特性的一組數據的統稱。PHP早就提供了豐富的數據類型,PHP 5中又有更多補充。本節將介紹這些數據類型,可以分為3類:標量數據類型、複合數據類型和特殊數據類型。

1、 標量數據類型

標量數據類型只能包含單個的一項資訊,以下都屬於標量數據類型:布爾型、整型、浮點型和字元型。

2、 複合數據類型

複合數據類型允許將多個相同類型的項聚集起來,表示為一個實體。這包含數組(array)和對象(object)。

3、 特殊數據類型

特殊數據類型包括那些提供某種特殊用途的類型,因此無法歸入其他任何類別。這包含資源(resource)和空(null)數據類型。

二、 標量數據類型

1、 布爾型(boolean)

布爾數據類型以數學家喬治·布爾(1815—1864)的姓名命名,他被認為是資訊理論的創始人之一。布爾變數表示真實性,只支援兩個值:TRUE(真)或FALSE(假)。

當轉換為 boolean 時,以下值被認為是 FALSE:

● 布爾值 FALSE

● 整型值 0(零)

● 浮點型值 0.0(零)

● 空白字元串和字元串 "0"

● 沒有成員變數的數組

● 沒有單元的對象(僅適用於 PHP 4)

● 特殊類型 NULL(包括尚未設定的變數)

所有其它值都被認為是 TRUE(包括任何資源)。

2、 整型(integer)

整型值可以用十進位,十六進位或八進位符號指定,前面可以加上可選的符號(- 或者 +)。

如果用八進位符號,數字前必須加上 0(零),用十六進位符號數字前必須加上 0x。

整型數的字長和平台有關,通常最大值是大約二十億(32 位有符號)。PHP 不支援無符號整數。

如果給定的一個數超出了 integer 的範圍,將會被解釋為 float。同樣如果執行的運算結果超出了 integer 範圍,也會返回 float。

3、 浮點型(float或double)

浮點數(也叫浮點數,雙精度數或實數),其字長和平台相關,通常最大值是 1.8e308 並具有 14 位十進位數字的精度(64 位 IEEE 格式)。

4、 字元型(string)

對於內容較少的字元型數據必須括成英文單引號或雙引號之間。那麼也就意味著單引號或雙引號不能出現在字元數據之內,否則將會引起解析錯誤!如果內容中必須要出現單引號或雙引號的話,那麼就必須使用轉義符!

5、 轉義符

轉義符固名思義就是其意思已經發生改變了,在PHP中,轉義符共有以下幾個:

轉義符

含義

雙引號

單引號

n

換行符

r

回車符

t

Tab鍵

\

反斜線

$

美元符號

對於雙引號和單引號,我們格外來強調一下,如果是想在瀏覽器的效果中看到雙引號或單引號,那麼在PHP源程式碼中的雙引號或單引號既可以通過HTML實體來表示,也可以通過轉義符來表示(建議使用HTML實體);而如果是想在瀏覽器的源程式碼中得到雙引號或單引號,那麼只能通過轉義符來表示了!我們通過以下的案例來說明這個問題!

<?php

$msg1 = stripcslashes("He said:"I'm fine"");

$msg2 = "He said:&quot;I&#39; fine.&quot;";

echo("<p>{$msg1}</p>n");

echo("<p>{$msg2}</p>n");

?>

運行後的瀏覽器效果如下:

源程式碼如下:

經過源程式碼的對比,我們就發現為什麼瀏覽器的效果中雙引號或單引號用HTML實體來代表的原因了!

再來看看瀏覽器的源程式碼中的雙引號或單引號的處理案例吧!

PHP程式碼:

<?php

echo("<p align="left">吳華部落格–http://pangdou.blog.51cto.com</p>");

?>

瀏覽器效果:

源程式碼效果:

三、 複合數據類型

1、 數組(array)

將一系列類似的項聚集在一起,並以某種特定的方式進行排列和引用。數組雙具體的分為數字索引數組和關聯數組

2、 對象(object)

PHP支援的另一種複合數據類型是對象。對象是面向對象程式編程(Object Oriented Programming,OOP)的核心概念。

四、 特殊數據類型

1、資源(resource)

PHP通常用於與一些外部數據源交互,如資料庫、文件和網路流。通常,這種交互通過句柄(handle)完成,成功地連接資源時會對句柄命名。這些句柄將保持對資源的引用,直到通訊結束。這些句柄就屬於資源數據類型。

2、空值(null)

特殊的 NULL 值表示一個變數沒有值。

下列情況下一個變數被認為是 NULL

· 被賦值為 NULL

· 尚未被賦值

· 被 unset()