Rumah > pembangunan bahagian belakang > masalah PHP > Apakah rentetan php terdiri daripada?

Apakah rentetan php terdiri daripada?

藏色散人
Lepaskan: 2023-03-17 21:40:01
asal
3318 orang telah melayarinya

rentetan php terdiri daripada satu siri aksara, di mana setiap aksara adalah bersamaan dengan satu bait, yang bermaksud bahawa PHP hanya boleh menyokong 256 set aksara, jadi Unicode tidak disokong dalam PHP, rentetan Pelaksanaannya; tatasusunan bait ditambah integer yang menentukan panjang penimbal.

Apakah rentetan php terdiri daripada?

Persekitaran pengendalian tutorial ini: sistem Windows 10, versi PHP 8.1, komputer DELL G3

Apakah rentetan php terdiri daripada?

Rentetan rentetan terdiri daripada satu siri aksara, di mana setiap aksara adalah bersamaan dengan satu bait. Ini bermakna PHP hanya boleh menyokong set aksara 256 dan oleh itu tidak menyokong Unicode.

Penjelasan terperinci tentang jenis rentetan

Pelaksanaan rentetan dalam PHP ialah tatasusunan bait ditambah integer yang menunjukkan panjang penimbal. Tiada maklumat tentang cara menukar bait kepada aksara, terpulang kepada pengaturcara untuk membuat keputusan. Tiada sekatan ke atas nilai rentetan tertentu, bait yang nilainya ialah 0 ("bait NUL") boleh berada di mana-mana dalam rentetan (walaupun terdapat beberapa fungsi, yang disebut dalam manual ini sebagai bukan binari "Selamat", mungkin mengabaikan semua data selepas bait NUL).

Ciri jenis rentetan ini menerangkan sebab tiada jenis "bait" yang berasingan dalam PHP - rentetan telah digunakan sebaliknya. Fungsi yang mengembalikan nilai bukan teks - seperti data arbitrari yang dibaca daripada soket rangkaian - masih akan mengembalikan rentetan.

Memandangkan PHP tidak menyatakan pengekodan rentetan, bagaimanakah rentetan itu dikodkan? Sebagai contoh, adakah rentetan "á" sama dengan "xE1" (ISO-8859-1), "xC3xA1" (UTF-8, C form), "x61xCCx81" (UTF-8, D form) atau sebarang ungkapan lain yang mungkin ? Jawapannya ialah rentetan akan dikodkan dalam pengekodan yang sama seperti fail skrip. Jadi jika skrip dikodkan sebagai ISO-8859-1, rentetan di dalamnya juga akan dikodkan sebagai ISO-8859-1, dan seterusnya. Walau bagaimanapun, ini tidak terpakai apabila Zend Multibyte diaktifkan; dalam kes ini skrip boleh dikodkan dalam apa-apa cara (sama ada dinyatakan secara eksplisit atau dikesan secara automatik) dan kemudian ditukar kepada beberapa pengekodan dalaman, dan rentetan akan dikodkan dengan cara ini. Ambil perhatian bahawa terdapat beberapa kekangan pada pengekodan skrip (atau pengekodan dalamannya jika Zend Multibyte diaktifkan) - ini bermakna pengekodan ini mestilah superset ASCII yang serasi, seperti UTF-8 atau ISO-8859-1. Walau bagaimanapun, ambil perhatian bahawa pengekodan bergantung kepada keadaan di mana nilai bait yang sama boleh digunakan untuk kedua-dua aksara awal dan bukan awal boleh menyebabkan masalah apabila menukar keadaan.

Sudah tentu, untuk berguna, fungsi yang beroperasi pada teks mesti membuat andaian tentang cara rentetan dikodkan. Malangnya, PHP mempunyai banyak variasi fungsi untuk ini:

  • Sesetengah fungsi menganggap bahawa rentetan dikodkan dalam bait tunggal, tetapi tidak memerlukan bait ditafsirkan sebagai aksara khusus. Contohnya substr(), strpos(), strlen() dan strcmp(). Satu lagi cara untuk memikirkan fungsi ini ialah ia beroperasi pada penimbal memori, iaitu, dari segi bait dan subskrip bait.

  • Sesetengah fungsi diluluskan pengekodan rentetan dan mungkin juga menganggap bahawa maklumat ini tidak tersedia secara lalai. Contohnya termasuk htmlentities() dan kebanyakan fungsi dalam sambungan mbstring.

  • Fungsi lain menggunakan tempat semasa (lihat setlocale()), tetapi beroperasi bait demi bait.

  • Akhirnya sesetengah fungsi menganggap bahawa rentetan berada dalam pengekodan tertentu, biasanya UTF-8. Ini adalah benar untuk kebanyakan fungsi dalam sambungan intl dan sambungan PCRE (dalam contoh di atas hanya apabila pengubah suai u digunakan).

Akhir sekali, menulis program yang menggunakan Unicode dengan betul bergantung pada berhati-hati untuk mengelakkan fungsi yang mungkin merosakkan data. Untuk menggunakan fungsi daripada sambungan intl dan mbstring. Tetapi menggunakan fungsi yang boleh mengendalikan pengekodan Unicode hanyalah permulaan. Tidak kira fungsi yang disediakan oleh mana-mana bahasa, perkara yang paling asas ialah memahami spesifikasi Unicode. Sebagai contoh, program yang menganggap hanya huruf besar dan huruf kecil akan menjadi salah sama sekali.

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Atas ialah kandungan terperinci Apakah rentetan php terdiri daripada?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan