Home > Article > Backend Development > How Long Can a PHP String Be?
What are the Boundaries of PHP String Length?
Regarding the length limits of strings in PHP, there are varying conditions based on PHP versions and system configurations.
PHP 7.0.0 and Later (64-bit)
In these 64-bit builds, string length has no specific restrictions, providing vast capacity for storing large amounts of text.
PHP 5.x and Earlier
Before PHP 7.0.0 and on 32-bit builds, strings were limited to a maximum of 2GB, as internal code represented their length in a 32-bit integer.
Memory Allocation Constraints
Apart from the string length limit, PHP scripts also face limitations on memory allocation for variables. This limit is controlled by the memory_limit directive in php.ini. By default, it's 128MB in PHP 5.2 and 8MB in earlier versions.
Exceeding this limit can result in a fatal error. However, setting it to -1 allows PHP to use memory as much as the operating system permits, while still subject to hardware limitations.
Practical Example
To illustrate the memory constraints, consider a script with a memory limit of 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 initially allocates 768KB for basic operations, leaving the script with 232KB of usable space. Allocating a 255KB string fills the available memory. Trying to allocate a 256KB string exceeds the limit and triggers a fatal error.
The above is the detailed content of How Long Can a PHP String Be?. For more information, please follow other related articles on the PHP Chinese website!