Apakah batasan praktikal pada panjang rentetan dalam PHP?

Susan Sarandon
Lepaskan: 2024-11-03 02:59:03
asal
371 orang telah melayarinya

What are the practical limitations on string length in PHP?

Panjang Maksimum Rentetan dalam PHP

String dalam PHP tidak mempunyai had khusus mengenai panjangnya dalam binaan 64-bit seperti PHP 7.0.0. Walau bagaimanapun, binaan 32-bit dan versi terdahulu mengenakan had 2GB (2147483647 bait).

Dalam PHP 5.x, rentetan dihadkan kepada 231-1 bait disebabkan penggunaan daripada integer 32-bit yang ditandatangani untuk merekodkan panjangnya.

Had Memori

Skrip PHP mempunyai had pada jumlah memori yang boleh mereka peruntukkan untuk pembolehubah, dengan berkesan meletakkan had pada panjang sesuatu pembolehubah rentetan tunggal. Had ini ditetapkan oleh arahan memory_limit dalam php.ini. Ia lalai kepada 128MB dalam PHP 5.2 dan 8MB dalam versi terdahulu.

Jika tiada had memori ditentukan, ia lalai kepada nilai yang ditetapkan semasa penyusunan. Menetapkan nilai -1 dalam php.ini melumpuhkan semakan memori, membenarkan skrip menggunakan memori sebanyak yang disediakan oleh sistem pengendalian.

Batasan Praktikal

Arahan had memori mengenakan had praktikal pada panjang rentetan, tanpa mengira had teori. Selain itu, saiz fail boleh menjadi faktor apabila menyedut kandungannya menggunakan fungsi seperti file_get_contents().

Contoh

Demonstrasi mudah:

<code class="php">ini_set('memory_limit', 1024*1024);
printf("memory: %d\n", memory_get_usage(true));

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

printf("memory: %d\n", memory_get_usage(true));

$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

Di sini, had memori 1MB ditetapkan. Memperuntukkan 255KB memori rentetan tidak melebihi had, tetapi cuba memperuntukkan 256KB mencetuskan ralat maut kerana mencapai had.

Atas ialah kandungan terperinci Apakah batasan praktikal pada panjang rentetan 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