本教程將介紹輸出INT類型在內(nèi)存中占多少個字節(jié)
新建一個333.php,如圖所示:
添加php的界定符(?php?>),如圖所示:
聲明PHP與瀏覽器交互的文件類型和編碼,如圖所示:
使用常量 PHP_INT_SIZE 來獲取INT類型在內(nèi)存中占多少個字節(jié),如圖所示:
使用 echo 語句輸出常量 PHP_INT_SIZE 獲取到的字節(jié)數(shù),如圖所示:
運行網(wǎng)頁,在瀏覽器上顯示獲取到的結(jié)果,如圖所示:
section id="smaller-text-left-7">至此,本教程結(jié)束!至此,本教程結(jié)束!
內(nèi)容擴展
php中int類型在不同平臺所占不同字節(jié)數(shù)理解
1.在不同平臺上占字節(jié)數(shù)與最大值
- 在32位平臺上int占4個字節(jié),在64位平臺上int占8個字節(jié),PHP_INT_SIZE
- 在32位平臺上int的最大值2^31 - 1,在64位平臺上int最大值2^63 - 1,PHP_INT_MAX。php中int不支持無符號
2.為什么在不同的平臺上int類型所占字節(jié)數(shù)有差異呢
不管什么類型,編譯型語言都會把源碼編譯成機器碼,由于不同平臺寄存器位寬不一樣, 所以有了自己對int的規(guī)定, 導(dǎo)致int 這個數(shù)據(jù)類型比較特殊,具體分配的字節(jié)數(shù)與機器字長和編譯器有關(guān)。但一般等于機器寄存器位寬(64位平臺除外,默認為4字節(jié)),如在32位平臺上(所謂32位平臺是指通用寄存器的數(shù)據(jù)寬度是32)編寫代碼,int 類型分配4個字節(jié),而在16位平臺是則分配2個字節(jié)。編譯器是把代碼轉(zhuǎn)換為機器碼的軟件,如果他愿意,可以把int轉(zhuǎn)換為256位的,只不過會增加機器的復(fù)雜度,降低可移植性。
3.平臺
個人把這三者合起來考慮(CPU+OS+Compiler)是因為:1、64位機器也可以裝32位系統(tǒng)(x64裝XP);2、32位機器上可以有16/32位的編譯器(XP上有tc是16位的,其他常見的是32位的);3、即使是32位的編譯器也可以弄出64位的integer來(int64)。以上這些是基于常見的wintel平臺,加上我們可能很少機會接觸的其它平臺(其它的CPU和OS),所以個人認為所謂平臺的概念是三者的組合。雖然三者的長度可以不一樣,但顯然相互配合(即長度相等,32位的CPU+32位的OS+32位的Compiler)發(fā)揮的能量最大。另外一個話題,如果只是從抽象的層面來看,每個程序有的只是虛擬的計算環(huán)境,可以不必考慮實際的環(huán)境,只需要了解虛擬環(huán)境的情況就可以了,這在不考慮移植性或者非底層編程的時候是很有幫助的,這樣可以使你關(guān)注你的邏輯而不是實現(xiàn)