« 4. 如何做 PHP 與 HTML 的文件換行? | (回到Blog入口) | 6. 如何做 PHP 的型別轉換? »

5. 如何指定變數與 PHP 的資料型態有哪些?

jollen 發表於 October 27, 2006 1:01 PM

PHP 所支援的資料型態 (data types) 有 8 種:

1. boolean
2. integer
3. floating (double)
4. string
5. array
6. object
7. resource
8. NULL

第 1~4 種型別稱為 scalar types (),第 5~6 種稱為 compound types (複合型別),最後第 7 與第 8 種則是特殊型別。

PHP 的變數屬鬆散資料型別,雖然支援 8 種不同的型態,但在初始化變數時不必宣告型態,而是在計算時動態 (dynamic) 決定,而非由撰寫程式的人決定。如果要強制設定變數的資料型別的話,可以利用 settype() 函數,或利用 C 語言的強迫轉型方式 (type casting)。

PHP 的鬆散資料型別,即我們給定什麼值,該變數即為什麼型別,或是如何使用該變數,該變數即為適當的型別,例如:

<?php $foo = "0"; // $foo 為 string (ASCII 48) $foo++; // $foo 變成 string "1" (ASCII 49) $foo += 1; // $foo 變成 integer (2) $foo = $foo + 1.3; // $foo 變成 double (3.3) $foo = 5 + "10 Little Piggies"; // $foo 為 integer (15) $foo = 5 + "10 Small Pigs"; // $foo 為 integer (15) ?>

另外還有一點,PHP 的變數都是以 $ (dollar sign) 開頭,並且變數名稱有大小寫之分,例如:

$name $Name

是兩個不同的變數。

當我們指定值 (value) 給變數時,事實上我們是指定 expression 最後的值給變數,例如:

$a = 5+5*2;

$a 的值為 5+5*2 最後的結果,即 15。

在 PHP 裡,除了給定值給變數外,還可以給定 reference 給變數。也就是,該變數為另外一個變數的 reference,reference 的意義很像是 "becomes an alias for" 或是 "points to",給定 reference 的方法為,在原來的變數前加上 & (ampersand) 符號,再指定給另外一個變數。例如:

<?php $foo = 5; // $foo 為 integer 5 $num = &$foo; // $num 為 $foo 的 reference ?>

上例中,&$foo 表示將 $foo 的 reference 指定給 $num 變數,當我們改變 $num 的值,等於改變 $foo 的值,也就是:

$num = 10; echo $foo; // 輸出 10

使用參考時,來源必須是一個變數名稱,例如:

<?php $foo = 10; $bar = &$foo; // 正確的寫法 $bar = &(1+2*2); // 錯誤的寫法!!!
function test() { return 0; }
$bar = &test(); // 錯誤的寫法!!! ?>

--jollen

版權聲明

請參閱頁面底部的 CC 授權條款。此外,Jollen's PHP 專欄禁止引用、修改與轉貼,如果您想與朋友分享的話,我們只允許網站連結(hyperlink)的形式。

發表一個評論

(如果你此前從未在此 Blog 上發表過評論,則你的評論必須在 Blog 主人驗證後才能顯示,請你耐心等候。)

| Top | Jollen's Forum |
Jollen's PHP 專欄採用 Attribution-NonCommercial-NoDerivs 2.5 授權條款
Copyright(c) 2001-2007,2010 www.jollen.org