>백엔드 개발 >PHP 튜토리얼 >PHP의 문자열 길이에 대한 실제 제한은 무엇입니까?

PHP의 문자열 길이에 대한 실제 제한은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-03 02:59:03426검색

What are the practical limitations on string length in PHP?

PHP의 문자열 최대 길이

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.