PHP의 문자열에는 PHP 7.0.0에 따라 64비트 빌드에서 길이에 대한 특정 제한이 없습니다. 그러나 32비트 빌드 및 이전 버전에서는 2GB(2147483647바이트)로 제한됩니다.
PHP 5.x에서는 사용으로 인해 문자열이 231-1바이트로 제한되었습니다. 길이를 기록하기 위해 부호 있는 32비트 정수를 사용합니다.
PHP 스크립트는 변수에 할당할 수 있는 총 메모리에 제한이 있어 효과적으로 길이에 제한을 둡니다. 단일 문자열 변수. 이 제한은 php.ini의 memory_limit 지시어에 의해 설정됩니다. PHP 5.2에서는 기본값이 128MB이고 이전 버전에서는 8MB입니다.
메모리 제한을 지정하지 않으면 컴파일 중에 설정된 값이 기본값으로 사용됩니다. php.ini에 -1 값을 할당하면 메모리 검사가 비활성화되어 스크립트가 운영 체제가 제공하는 만큼의 메모리를 사용할 수 있습니다.
메모리 제한 지시문은 실제 제한을 부과합니다. 이론적인 한계에 관계없이 문자열 길이에 따라 달라집니다. 또한 file_get_contents()와 같은 함수를 사용하여 내용을 후루룩 소리낼 때 파일 크기가 요인이 될 수 있습니다.
간단한 데모:
<code class="php">ini_set('memory_limit', 1024*1024); printf("memory: %d\n", memory_get_usage(true)); $str = str_repeat('a', 255*1024); echo "Allocated string of 255KB\n"; printf("memory: %d\n", memory_get_usage(true)); $str = str_repeat('a', 256*1024); echo "Allocated string of 256KB\n"; printf("memory: %d\n", memory_get_usage(true));</code>
여기, 1MB의 메모리 제한이 설정되었습니다. 스트링 메모리 255KB 할당은 제한을 초과하지 않지만, 256KB 할당을 시도하면 제한 도달로 인해 치명적인 오류가 발생합니다.
위 내용은 PHP의 문자열 길이에 대한 실제 제한은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!