首頁 >後端開發 >PHP問題 >php int是幾個位元組

php int是幾個位元組

藏色散人
藏色散人原創
2021-07-02 11:23:402830瀏覽

php int是4個位元組,其確認方法就是使用常數PHP_INT_SIZE來取得INT類型在記憶體中佔多少個位元組,然後使用echo語句輸出常數PHP_INT_SIZE取得的位元組數即可。

php int是幾個位元組

本文操作環境:Windows7系統、PHP7.1版,Dell G3電腦

php int是幾個位元組?輸出INT型別在記憶體中佔多少個位元組?

新建一個333.php,如圖:

#新增php的界定符(),如圖所示:

聲明PHP與瀏覽器互動的檔案類型與編碼,如圖所示:

使用常數 PHP_INT_SIZE 來取得INT型別在記憶體中佔多少個位元組,如圖所示:

使用echo 語句輸出常數PHP_INT_SIZE 取得的位元組數,如圖所示:

執行網頁,在瀏覽器上顯示取得到的結果,如圖所示:

section id="smaller-text-left-7">至此,本教學結束!

至此,本教學結束!

內容擴充

php中int型別在不同平台所佔不同位元組數理解

1.在不同平台上佔位元組數與最大值

  • 在32位元平台上int佔4個字節,在64位元平台上int佔8個位元組,PHP_INT_SIZE
  • #在32位元平台上int的最大值2^31 - 1,在64位元平台上int最大值2^63 - 1,PHP_INT_MAX。 php中int不支援無符號

2.為什麼在不同的平台上int型別所佔字節數有差異呢

#不管什麼類型,編譯型語言都會把源碼編譯成機器碼,由於不同平台暫存器位寬不一樣, 所以有了自己對int的規定, 導致int 這個資料型別比較特殊,具體分配的位元組數與機器字長和編譯器有關。但一般等於機器暫存器位寬(64位元平台除外,預設為4位元組),如在32位元平台上(所謂32位元平台是指通用暫存器的資料寬度是32)編寫程式碼,int 型別分配4個字節,而在16位元平台是則分配2個位元組。編譯器是把程式碼轉換成機器碼的軟體,如果他願意,可以把int轉換成256位元的,只不過會增加機器的複雜度,降低可移植性。

3.平台

個人把這三者合起來考慮(CPU OS Compiler)是因為:1、64位元機器也可以裝32位元系統(x64裝XP) ;2、32位元機器上可以有16/32位元的編譯器(XP上有tc是16位元的,其他常見的是32位元的);3、即使是32位元的編譯器也可以弄出64位的integer來(int64)。以上這些是基於常見的wintel平台,加上我們可能很少機會接觸的其它平台(其它的CPU和OS),所以個人認為所謂平台的概念是三者的組合。雖然三者的長度可以不一樣,但顯然相互配合(即長度相等,32位的CPU 32位的OS 32位的Compiler)所發揮的能量最大。另外一個主題,如果只是從抽象的層面來看,每個程式有的只是虛擬的運算環境,可以不必考慮實際的環境,只需要了解虛擬環境的情況就可以了,這在不考慮移植性或非底層程式設計的時候是很有幫助的,這樣可以讓你專注在你的邏輯而不是實現

推薦學習:《PHP影片教學

以上是php int是幾個位元組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn