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:
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);
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.
Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.
Copyright© 2022 湘ICP备2022001581号-3