Quelles sont les limites de la longueur des chaînes PHP ?
En ce qui concerne les limites de longueur des chaînes en PHP, il existe différentes conditions en fonction des versions de PHP. et les configurations système.
PHP 7.0.0 et versions ultérieures (64 bits)
Dans ces Versions 64 bits, la longueur de la chaîne n'a pas de restrictions spécifiques, offrant une grande capacité de stockage de grandes quantités de texte.
PHP 5.x et versions antérieures
Avant PHP 7.0. 0 et sur les versions 32 bits, les chaînes étaient limitées à un maximum de 2 Go, car le code interne représentait leur longueur dans un format 32 bits. entier.
Contraintes d'allocation de mémoire
Outre la limite de longueur de chaîne, les scripts PHP sont également confrontés à des limitations sur l'allocation de mémoire pour les variables. Cette limite est contrôlée par la directive memory_limit dans php.ini. Par défaut, elle est de 128 Mo dans PHP 5.2 et de 8 Mo dans les versions antérieures.
Le dépassement de cette limite peut entraîner une erreur fatale. Cependant, le définir sur -1 permet à PHP d'utiliser la mémoire autant que le système d'exploitation le permet, tout en restant soumis à des limitations matérielles.
Exemple pratique
Pour illustrer le contraintes de mémoire, considérez un script avec une limite de mémoire de 1 Mo :
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 alloue initialement 768 Ko pour les opérations de base, laissant au script 232 Ko d'espace utilisable. L'allocation d'une chaîne de 255 Ko remplit la mémoire disponible. Essayer d'allouer une chaîne de 256 Ko dépasse la limite et déclenche une erreur fatale.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3