Seberapa Besar String dalam PHP?

Barbara Streisand
Lepaskan: 2024-11-02 21:45:02
asal
171 orang telah melayarinya

How Large Can a String Be in PHP?

Apakah Had Atas pada Panjang Rentetan dalam PHP?

Pertanyaan:
Bolehkah anda memberi penerangan tentang had kapasiti penyimpanan rentetan dalam PHP? Saya telah cuba mengukurnya tetapi tidak pasti sama ada memori sistem saya (2GB) mencukupi untuk ujian. Adakah terdapat penutup yang telah ditetapkan? Apakah tindakan yang berlaku apabila rentetan melebihi ambang ini – penggabungan atau ralat?

Respons:
Menurut dokumentasi PHP.net, sekatan panjang rentetan telah dihapuskan dalam PHP 7.0.0 untuk binaan 64-bit. Untuk binaan 32-bit dan versi terdahulu, rentetan boleh mencapai saiz maksimum 2GB (2147483647 bait).

Dalam PHP 5.x, rentetan dihadkan kepada 231-1 bait kerana kod dalaman menjejaki panjangnya dalam 32-bit yang ditandatangani integer.

Pertimbangan Tambahan:
Anda boleh memuatkan keseluruhan kandungan fail menggunakan fungsi seperti file_get_contents(). Walau bagaimanapun, peruntukan memori keseluruhan skrip PHP untuk semua pembolehubah mengehadkan panjang pembolehubah rentetan individu.

Arahan Had Memori:
Arahan memory_limit dalam fail konfigurasi php.ini menetapkan ini had. Lalainya ialah 128MB dalam PHP 5.2 dan 8MB dalam versi terdahulu.

Jika memory_limit tidak ditetapkan dalam php.ini, ia lalai kepada nilai terkumpul dalam binari PHP, yang boleh diubah suai dengan menyusun semula PHP dengan lalai tersuai .

Menetapkan had_memori kepada -1 dalam php.ini melumpuhkan pemeriksaan dan membenarkan skrip anda untuk gunakan seberapa banyak memori yang diperuntukkan oleh OS (masih tertakluk kepada kekangan praktikal dan khusus sistem).

Contoh Ujian:
Kod berikut menunjukkan cara menguji penggunaan memori dan peruntukan rentetan had:

<code class="php">// Limit memory usage to 1MB
ini_set('memory_limit', 1024*1024);

// Basic operation uses about 768KB
printf("memory: %d\n",  memory_get_usage(true));

$str = str_repeat('a',  255*1024);
echo "Allocated string of 255KB\n";

// All 1MB of memory has been allocated
printf("memory: %d\n",  memory_get_usage(true));

// Exceeding the limit causes a fatal error
$str = str_repeat('a',  256*1024);
echo "Allocated string of 256KB\n";
printf("memory: %d\n",  memory_get_usage(true));</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Seberapa Besar String dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan