PHP 中字串的最大長度
在 PHP 中,字串的長度受系統中可用記憶體的限制。字串的最大大小取決於平台,64 位元版本能夠處理任意大的字串。
在 PHP 5.x 中,字串限制為 231-1位元組,因為長度儲存在有符號的 32 位元整數中。然而,這個限制在 PHP 7.0.0 中已被刪除。
實際注意事項
雖然字串的大小可以任意大,但為所有變數分配的總記憶體單一腳本的執行仍然受到php.ini 中的memory_limit指令的限制。此限制在 PHP 5.2 中通常設定為 128MB,在早期版本中設定為 8MB。
如果未在 php.ini 中明確設定記憶體限制,則使用預設值,該值會根據 PHP 二進位檔案的配置而變化。將記憶體限制設為 -1 可有效停用此檢查,並允許腳本使用盡可能多的記憶體。
真實範例
以下PHP 腳本示範記憶體限制和字串大小之間的關係:
<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>
執行時,此腳本將會執行時,此腳本將會執行時輸出:
memory: 768000 Allocated string of 255KB memory: 1023952
這表示一旦字串達到255KB,分配的記憶體就達到限制。嘗試分配更大的字串將導致致命錯誤。
以上是PHP 中字串的最大長度是多少?的詳細內容。更多資訊請關注PHP中文網其他相關文章!