首頁 > 後端開發 > php教程 > PHP學習寶典-第六章

PHP學習寶典-第六章

黄舟
發布: 2023-03-04 07:06:01
原創
1078 人瀏覽過

PHP中的型別

本章重點

◆ 了解PHP的八種型別…Boolean、

◆ NULL、string、array、object與、resource

◆ 建立、讀取、string、array、object與、resource

◆ 建立、讀取、顯示輸出與控制不同類型別的物件

從某種型別轉換成其它型別

所有程式設計語言都有某些型別系統,且來指定可出現在程式中的數值種類。這些不同的型別常對應於電腦記憶體中不同層級的表示,在許多情況下程式設計者不用考慮位元的表示方式(或是有足夠能力處理)。 PHP的型別系統是簡單合理,而且很有彈性,它把程式設計者與一些低階段的細節分隔開來。

在本章中,我們將說明PHP的基本型別(integer、double、Boolean、NULL、string、array、object、 resource),並且講解如何讀取、如何輸出顯示、如何、指定給變數、如何轉換以及怎麼組合在一起。在這一章中既是概論也是參考資料,對已是程式設計老手的人可以跳過不看,但只有部份不太熟悉的人可以只閱讀前面幾節,不管是誰都可以在往後有問題時回不來查找那些當初看起來無關緊要的細節內容。

首要原則:放鬆自己

PHP使得在鍵入變數和值時很容易,這是因為它不需在指定孌數和確定型別,另外也是因為它能夠處理很多種型別的轉換。

變數類型不必先宣告

正如在上章中已經提到的內容,變數的類型不是需要提前宣告,可由編程者直接使用運算式指定值,而PHP自己會負責弄清楚在指定的值是什麼型別,如下範例:

$first_number=55.5;

$second_number=“Not a number at all”;

型別自動轉換

PHP在需要時自動進行類型的轉換。就像現在大多數的程式語言一樣,PHP在進行混合式的數位型別計算時,也都可以執行得很好,例如運算式

$pi=3+0.14159

的結果就會是個倍精度浮點數,在執行加法前,整數「3」就會被暗中先轉換成了浮點數。

根據上下文配製類型

PHP在執行自動型別轉換時比大多數語言做得更深入,請看看下面的範例

$sub=substr(12345,2,2);

Print( “sub is $sub
”);

Substr函數是設計成以一個字符串當成一個輸入值,然後傳回該字符串的某部分子字符串,由函數的另兩個參數來決定取回子字串的起點和長度。在這個例子中,我們並不是給它一個字符串值,而是傳遞了整數12345,結果會怎麼樣呢?實際上執行並不會有什麼問題,瀏覽器一樣會輸出

Sub is 34

由於substr希望得到的是字符串而不是整數,PHP會自動把數字12345轉換成了字符串“12345”,然後substr就可以做自己的事情了。

因為這種自動的型別轉換特性,PHP很難在型別方面出錯,不過實際是PHP程式設計者還是需要小心一些,以確保型別的混合使用不會產生「沒什麼錯誤、但卻也不是正確結果」的情況。

型別整理]

PHP只有八種型別…Boolean、string、array、object、NULL和resource。

* integer 數字的整數部分,沒有小數點,如495。

* double 倍精度浮點數,類似3.14159或49.0等。

* Boolean 布林型別,只可能出現兩種值,TRUE或FALSE(真或非真)。

* NULL 一種特殊型別,其值只有可能為NULL。

* string 字串,是字元序列,類似「PHP4支援字串運算」這類的表示法。

* array 陣列,是對一些已經命名且建立索引之其它值的集合。

* object 物件,由程式設計者定義類別(class)的實例,可包裝特定於該類別

別的其它類型之值和函數。

* tesource 是一種特殊變數,用來存放參照到PHP外部的資源(例如資料庫連線)

請注意Boolean、NULL與resource這些類型是PHP4所增加的型別,PHP3並不適用。

當然前面五種型別屬於基本型另別,而接續兩種(array與object)屬於複合型別,這些複合型別可以用來將任意型別的任意值組成一群變數,但是基本型別卻不行。我們在本章只會簡短複合型別(array與object),因為它們會在各自所屬章節詳細介紹。最後,resource類型是PHP設計師不會直接處理的特殊型別,而是透過特殊函數來存取資源或是它們傳遞給所需的其他函數。

簡單型別

PHP中的簡單類型(integer、double、Boolean、NULL和string)對於有程式設計經驗的人來說一定很熟悉(雖然我們並非針對熟練的人,但我們還是要詳細講解它們)。唯一會讓C語言程式設計者感到驚訝的可能就是PHP的型別怎麼少。 🎜🎜大多數程式語言都有幾種不同大小的數字類型,較大的數值類型允許值的範圍更廣,但也會佔用更多的記憶體空間。例如,C語言有short型別(用於相對較小的整數),long型別(用於可能很大的整數)和int型別(這是種中間型別,但實際上不是和short就是和long型別相同),它還有不同精確度的浮點數類型,在記憶體使用和功能之間的取拾可能會令你煩惱,但這種型別選擇還是很有意義的。 PHP設計開發人員幫我們做了很好的取拾,透過只用兩種數位型別簡化了這個難題,這兩種型別分別對應於C語言中的整數和浮點數型別。

整數型別

Integer是簡單的型別,對應於包含正數和負數的簡單整數。整數可指定值給變數,或可用在運算式中,如下所示的例子:

$int_var=12345;

$another_int=-12345+12345;//等於

實際上讀取一個格式
可用三種相對於不同基數的方式來讀取,十進位(基數為10)、八進位(基數為8)和十六進位(基數為16)。十進位格式是預設值,八進位整數的前置是以「0」來指定的,十六進位的前置為「0x」。任何格式都可以前置「-」符號來命使整數為負數。例如:

$integer_10 = 1000;

$integer_8 = -01000;

$integer_16 = 0x1000;

Print(“egereger_16 =$into_1008); );

print(“integer_16:$integer_16
”);

其瀏覽器輸出為:

integer_10: 1000
egerinteger_8:512
只被讀取到數字讀取時是如何換的,儲存在$integer_8中的值並不會記下最初是以8為基數編寫的。在最的輸出是以10為基數的轉換結果,因為這是預設印刷的,另外它也會把int變數合併進字符串的預設值)。

範圍

整數可以多大(或多小)呢?因為PHP整數是對應於C的long型別,而該類型取決於你使用機器系統上的字的長度,所以很難明確地回答這個問題。不過在大多數共同系統一台上,最大的整數是「231-1」(或2,147,483,647),最小(負)整數是「-(231-1)」(或- 2,147,483,647)。

就我們所知,目前沒有能指出完成式中最大整數的PHP常數(類似C語言中的MAXINT),如果有疑問,請參見本章最後面的補充內容,如果你真的有需要使用非常大的整數,PHP是有一些專精度(arbitrary-precision)函式,請參閱第十二章關於“BC”該節。

double型別

double是倍精度浮點數,例如

$first_double = 123.456;

$second_double = 0.456;四捨五入取整數(round) 」的數字,但並不表示它是個整數型別。整數型別和倍精度型雖數是以不同的基楚格式儲存的,例如下列運算式:

$five = $even_double+3;

的結果的個倍精度型別數,而不是個整數類型,即使它列出的結果是「5」。然而,在所有情況下,都可以自由地在數學運算式中混合使用倍精度浮點數和整數,讓PHP自己來選型別來處理。

在預設情況下,列出倍精度數字時採用了所需的最少的小數位數,例如,程序碼,

$many = 2.2888800;

$many_2 = 2.2111200;

$many_2 = 2.2111200;

$many_2 = 2.2111200;

$many_2 = 2.2111200;

$many_2 = 2.2111200; many + $many_2;

Print(“$many + $many_2 = $few
”);

在瀏覽器中產生下面的輸出:

2.28888 + 2.21112 = 4.5輸出顯示結果,可參閱第十章的printf函數

讀取格式

倍精度浮點數的典型取格式是“-X.Y”,其中“-”是選擇性的,用來指定負數,X和Y 是0-9之間的數字序列。 X部份可以省略(如果數字在-1.0至1.0之間),Y部份也可以省略(沒有小數點)。前置的工結尾的0都可忽略,以下皆為有效果的倍精度浮點數例子:

$small_positive = 0.12345;

$small_negative = -.12345

$even_do$small_negative = -.12345

$even_double = 2.0008 2.;

另外,倍業精長數度可按科學符號記數法來指定,在前面格式尾端添加字母e和想在的10的整數乘幕,例如,「2.2e-3」將對應於“2.2x10-3”。數字的浮點數部分不需要嚴格限制在1.0和10.0之間的範圍。以下所有範圍例程式碼行皆為有效:

$small_positive=5.6-3;

Ptint(“small_positive is $small_postive
”);

$large_positive=2.8e+16; $large_postive
”);

$small_negative = -2222e-10;

Ptint(“small_negative is $small_negative
”);

$large_negative=-0.00189e6;

$large_negative=-0.00189e6;

_Pint(oc他在們瀏覽器的輸出為:

small_positive is 0.0055

larger_positive is 2.8e+16

sall_negative is -2.222e-07

sall_negative is -2.222e-07

lar_negative is -2.222e-07

lar_negative is -2.222e-07 P結束了讀取數字的過程,讀取格式就與前面的變數不相干了,它不會記得最初是用科學符號記數法指定的,輸出打印值的時候,PHP自己會做出決定,以科學符號記數盡量用最極端大小的數值,但這與最初的讀取格式無關。

 以上就是PHP學習寶典-第六章的內容,更多相關內容請關注PHP中文網(www.php.cn)! 


🎜
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板