"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Qual o tamanho de uma string em PHP?

Qual o tamanho de uma string em PHP?

Publicado em 2024-11-09
Navegar:235

How Large Can a String Be in PHP?

Qual é o limite superior do comprimento da string em PHP?

Consulta:
Você pode esclarecer os limites da capacidade de armazenamento de strings em PHP? Tentei avaliar, mas não tenho certeza se a memória do meu sistema (2 GB) é adequada para o teste. Existe um limite predefinido? Quais ações ocorrem quando uma string excede esse limite – concatenação ou um erro?

Resposta:
De acordo com a documentação do PHP.net, as restrições de comprimento de string foram eliminadas no PHP 7.0.0 para compilações de 64 bits. Para compilações de 32 bits e versões anteriores, as strings podiam atingir um tamanho máximo de 2 GB (2147483647 bytes).

No PHP 5.x, as strings eram restritas a 231-1 bytes porque o código interno rastreou seu comprimento em um número inteiro assinado de 32 bits.

Adicional Considerações:
Você pode carregar o conteúdo inteiro de um arquivo usando funções como file_get_contents(). No entanto, a alocação geral de memória de um script PHP para todas as variáveis ​​​​limita o comprimento de variáveis ​​​​de string individuais.

Diretiva de limite de memória:
A diretiva memory_limit no arquivo de configuração php.ini define isso limite. Seu padrão é 128 MB no PHP 5.2 e 8 MB nas versões anteriores.

Se memory_limit não estiver definido no php.ini, o padrão é o valor compilado no binário do PHP, que pode ser modificado recompilando o PHP com um padrão personalizado .

Definir memory_limit como -1 no php.ini desativa a verificação e permite que seu script utilize tanta memória quanto o sistema operacional aloca (ainda sujeito a práticas e restrições específicas do sistema).

Exemplo de teste:
O código a seguir demonstra como testar o uso de memória e os limites de alocação de strings:

// Limit memory usage to 1MB
ini_set('memory_limit', 1024*1024);

// Basic operation uses about 768KB
printf("memory: %d\n",  memory_get_usage(true));

$str = str_repeat('a',  255*1024);
echo "Allocated string of 255KB\n";

// All 1MB of memory has been allocated
printf("memory: %d\n",  memory_get_usage(true));

// Exceeding the limit causes a fatal error
$str = str_repeat('a',  256*1024);
echo "Allocated string of 256KB\n";
printf("memory: %d\n",  memory_get_usage(true));
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3