Was sind die Grenzen der PHP-Stringlänge?
Bezüglich der Längenbeschränkungen von Strings in PHP gibt es je nach PHP-Version unterschiedliche Bedingungen und Systemkonfigurationen.
PHP 7.0.0 und höher (64-Bit)
In diesen 64-Bit-Builds unterliegt die String-Länge keinen besonderen Einschränkungen und bietet eine enorme Kapazität zum Speichern großer Textmengen.
PHP 5.x und früher
Vor PHP 7.0.0 und bei 32-Bit-Builds waren Zeichenfolgen auf maximal begrenzt 2 GB, da der interne Code ihre Länge in einer 32-Bit-Ganzzahl darstellt.
Speicherzuweisungsbeschränkungen
Neben der Zeichenfolgenlängenbeschränkung sind PHP-Skripte auch mit Speicherbeschränkungen konfrontiert Zuordnung für Variablen. Dieses Limit wird durch die Direktive „memory_limit“ in php.ini gesteuert. Standardmäßig sind es 128 MB in PHP 5.2 und 8 MB in früheren Versionen.
Das Überschreiten dieses Grenzwerts kann zu einem schwerwiegenden Fehler führen. Wenn Sie ihn jedoch auf -1 setzen, kann PHP so viel Speicher nutzen, wie es das Betriebssystem zulässt, und unterliegt dennoch Hardwareeinschränkungen.
Praktisches Beispiel
Zur Veranschaulichung Speicherbeschränkungen: Betrachten Sie ein Skript mit einem Speicherlimit von 1 MB:
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 reserviert zunächst 768 KB für grundlegende Vorgänge, sodass dem Skript 232 KB nutzbarer Speicherplatz zur Verfügung stehen. Durch die Zuweisung einer 255-KB-Zeichenfolge wird der verfügbare Speicher gefüllt. Der Versuch, eine 256-KB-Zeichenfolge zuzuweisen, überschreitet das Limit und löst einen schwerwiegenden Fehler aus.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3