Panjang Maksimum Rentetan dalam PHP
Dalam PHP, panjang rentetan dihadkan oleh memori yang tersedia dalam sistem. Saiz maksimum rentetan bergantung pada platform, dengan binaan 64-bit dapat mengendalikan rentetan besar secara sewenang-wenangnya.
Dalam PHP 5.x, rentetan dihadkan kepada 231-1 bait, kerana panjangnya disimpan dalam integer 32-bit yang ditandatangani. Walau bagaimanapun, had ini telah dialih keluar dalam PHP 7.0.0.
Pertimbangan Praktikal
Walaupun rentetan boleh bersaiz besar sewenang-wenangnya, jumlah memori yang diperuntukkan untuk semua pembolehubah dalam satu pelaksanaan skrip masih dihadkan oleh arahan memory_limit dalam php.ini. Had ini biasanya ditetapkan kepada 128MB dalam PHP 5.2 dan 8MB dalam keluaran terdahulu.
Jika had memori tidak ditetapkan secara eksplisit dalam php.ini, nilai lalai digunakan, yang berbeza-beza bergantung pada konfigurasi binari PHP. Menetapkan had memori kepada -1 dengan berkesan melumpuhkan semakan ini dan membenarkan skrip menggunakan sebanyak mungkin memori.
Contoh Dunia Sebenar
Skrip PHP berikut menunjukkan hubungan antara had memori dan saiz 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)); // Allocate a string of 255KB $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)); // Attempting to allocate a string larger than the memory limit will cause a fatal error $str = str_repeat('a', 256*1024); echo "Allocated string of 256KB\n"; printf("memory: %d\n", memory_get_usage(true));</code>
Apabila dijalankan, skrip ini akan mengeluarkan:
memory: 768000 Allocated string of 255KB memory: 1023952
Ini menunjukkan bahawa memori yang diperuntukkan mencapai had sebaik sahaja rentetan mencapai 255KB . Percubaan untuk memperuntukkan rentetan yang lebih besar akan mengakibatkan ralat maut.
Atas ialah kandungan terperinci Apakah Panjang Maksimum Rentetan dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!