Rumah > Artikel > pembangunan bahagian belakang > Apakah had panjang rentetan maksimum dalam PHP, dan bagaimanakah ia dipengaruhi oleh had ingatan?
Had Panjang Rentetan PHP
PHP membenarkan manipulasi dan penyimpanan rentetan yang meluas, tetapi pengehadan wujud berkenaan dengan panjang maksimum rentetan.
Binaan 64-bit
Seperti yang dinyatakan dalam dokumentasi PHP (http://php.net/manual/en/language.types.string.php), tiada sekatan khusus pada panjang rentetan dalam binaan 64-bit PHP 7.0.0 dan lebih baru. Ini bermakna rentetan secara teorinya boleh selagi memori sistem membenarkan.
Binaan 32-bit dan PHP 5.x
Dalam binaan 32-bit dan versi PHP sebelum 7.0.0, rentetan dihadkan kepada panjang maksimum 231-1 bait disebabkan oleh kod dalaman yang merekodkan panjang sebagai integer 32-bit yang ditandatangani.
Had Memori Pengendalian Fail dan Pelaksanaan Skrip
Walaupun mungkin tiada had panjang rentetan yang wujud, skrip PHP mempunyai had ingatan yang dikuatkuasakan oleh arahan memory_limit dalam fail konfigurasi php.ini. Had ini, yang lalai kepada 128MB dalam PHP 5.2 dan 8MB dalam versi terdahulu, mempengaruhi jumlah memori yang boleh diperuntukkan untuk semua pembolehubah, termasuk rentetan. Jika had ini melebihi, skrip akan ditamatkan dengan ralat yang membawa maut.
Contoh Praktikal
Kod PHP berikut menunjukkan cara had memori mempengaruhi peruntukan rentetan:
<code class="php">// limit memory usage to 1MB ini_set('memory_limit', 1024*1024); // initially, PHP seems to allocate 768KB for basic operation printf("memory: %d\n", memory_get_usage(true)); $str = str_repeat('a', 255*1024); echo "Allocated string of 255KB\n"; // now we have allocated all of the 1MB of memory allowed printf("memory: %d\n", memory_get_usage(true)); // going over the limit causes a fatal error, so no output follows $str = str_repeat('a', 256*1024); echo "Allocated string of 256KB\n"; printf("memory: %d\n", memory_get_usage(true));</code>
Dalam contoh ini, skrip berjaya memperuntukkan rentetan 255KB tetapi gagal memperuntukkan rentetan 256KB kerana had memori. Had memori yang tepat bergantung pada sumber sistem dan seni bina.
Atas ialah kandungan terperinci Apakah had panjang rentetan maksimum dalam PHP, dan bagaimanakah ia dipengaruhi oleh had ingatan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!