您好,登錄后才能下訂單哦!
這篇文章主要講解了“php字符串的組成是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“php字符串的組成是什么”吧!
php字符串是由一系列的字符組成,其中每個字符等同于一個字節,這意味著PHP只能支持256的字符集,因此不支持Unicode;在PHP中字符串的實現方式是一個由字節組成的數組再加上一個整數指明緩沖區長度。
php字符串由什么組成?
一個字符串 string 就是由一系列的字符組成,其中每個字符等同于一個字節。這意味著 PHP 只能支持 256 的字符集,因此不支持 Unicode 。
字符串類型詳解
PHP 中的 string 的實現方式是一個由字節組成的數組再加上一個整數指明緩沖區長度。并無如何將字節轉換成字符的信息,由程序員來決定。字符串由什么值來組成并無限制;特別的,其值為 0(“NUL bytes”)的字節可以處于字符串任何位置(不過有幾個函數,在本手冊中被稱為非“二進制安全”的,也許會把 NUL 字節之后的數據全都忽略)。
字符串類型的此特性解釋了為什么 PHP 中沒有單獨的“byte”類型 - 已經用字符串來代替了。返回非文本值的函數 - 例如從網絡套接字讀取的任意數據 - 仍會返回字符串。
由于 PHP 并不特別指明字符串的編碼,那字符串到底是怎樣編碼的呢?例如字符串 "á" 到底是等于 "\xE1"(ISO-8859-1),"\xC3\xA1"(UTF-8,C form),"\x61\xCC\x81"(UTF-8,D form)還是任何其它可能的表達呢?答案是字符串會被按照該腳本文件相同的編碼方式來編碼。因此如果一個腳本的編碼是 ISO-8859-1,則其中的字符串也會被編碼為 ISO-8859-1,以此類推。不過這并不適用于激活了 Zend Multibyte 時;此時腳本可以是以任何方式編碼的(明確指定或被自動檢測)然后被轉換為某種內部編碼,然后字符串將被用此方式編碼。注意腳本的編碼有一些約束(如果激活了 Zend Multibyte 則是其內部編碼)- 這意味著此編碼應該是 ASCII 的兼容超集,例如 UTF-8 或 ISO-8859-1。不過要注意,依賴狀態的編碼其中相同的字節值可以用于首字母和非首字母而轉換狀態,這可能會造成問題。
當然了,要做到有用,操作文本的函數必須假定字符串是如何編碼的。不幸的是,PHP 關于此的函數有很多變種:
某些函數假定字符串是以單字節編碼的,但并不需要將字節解釋為特定的字符。例如 substr(),strpos(),strlen() 和 strcmp()。理解這些函數的另一種方法是它們作用于內存緩沖區,即按照字節和字節下標操作。
某些函數被傳遞入了字符串的編碼方式,也可能會假定默認無此信息。例如 htmlentities() 和 mbstring 擴展中的大部分函數。
其它函數使用了當前區域(見 setlocale()),但是逐字節操作。
最后一些函數會假定字符串是使用某特定編碼的,通常是 UTF-8。intl 擴展和 PCRE(上例中僅在使用了 u 修飾符時)擴展中的大部分函數都是這樣。
最后,要書寫能夠正確使用 Unicode 的程序依賴于很小心地避免那些可能會損壞數據的函數。要使用來自于 intl 和 mbstring 擴展的函數。不過使用能處理 Unicode 編碼的函數只是個開始。不管用何種語言提供的函數,最基本的還是了解 Unicode 規格。例如一個程序如果假定只有大寫和小寫,那可是大錯特錯。
1、執行速度快。
2、具有很好的開放性和可擴展性。
3、PHP支持多種主流與非主流的數據庫。
4、面向對象編程:PHP提供了類和對象。
5、版本更新速度快。
6、具有豐富的功能。
7、可伸縮性。
8、功能全面,包括圖形處理、編碼與解碼、壓縮文件處理、xml解析等。
感謝各位的閱讀,以上就是“php字符串的組成是什么”的內容了,經過本文的學習后,相信大家對php字符串的組成是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。