Apakah Sempadan Panjang Rentetan PHP?
Mengenai had panjang rentetan dalam PHP, terdapat pelbagai syarat berdasarkan versi PHP dan konfigurasi sistem.
PHP 7.0.0 dan Kemudian (64-bit)
Dalam binaan 64-bit ini, panjang rentetan tidak mempunyai sekatan khusus, memberikan kapasiti yang besar untuk menyimpan sejumlah besar teks.
PHP 5. x dan Terdahulu
Sebelum PHP 7.0.0 dan pada binaan 32-bit, rentetan terhad kepada maksimum 2GB, kerana kod dalaman mewakili panjangnya dalam integer 32-bit.
Kekangan Peruntukan Memori
Selain daripada had panjang rentetan, PHP skrip juga menghadapi had pada peruntukan memori untuk pembolehubah. Had ini dikawal oleh arahan memory_limit dalam php.ini. Secara lalai, ia adalah 128MB dalam PHP 5.2 dan 8MB dalam versi terdahulu.
Melebihi had ini boleh mengakibatkan ralat maut. Walau bagaimanapun, menetapkannya kepada -1 membolehkan PHP menggunakan memori sebanyak yang dibenarkan oleh sistem pengendalian, sementara masih tertakluk kepada had perkakasan.
Contoh Praktikal
Untuk menggambarkan kekangan ingatan, pertimbangkan skrip dengan had memori 1MB:
<code class="php">ini_set('memory_limit', 1024*1024); // allocating 255KB string $str = str_repeat('a', 255*1024); print_r($str); // exceeded memory limit, results in fatal error $str = str_repeat('a', 256*1024); print_r($str);</code>
PHP pada mulanya memperuntukkan 768KB untuk operasi asas, meninggalkan skrip dengan 232KB ruang yang boleh digunakan. Memperuntukkan rentetan 255KB mengisi memori yang tersedia. Cuba memperuntukkan rentetan 256KB melebihi had dan mencetuskan ralat maut.
Atas ialah kandungan terperinci Berapa Lama String PHP Boleh?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!