Heim >Backend-Entwicklung >PHP-Tutorial >Was sind die praktischen Einschränkungen der Stringlänge in PHP?

Was sind die praktischen Einschränkungen der Stringlänge in PHP?

Susan Sarandon
Susan SarandonOriginal
2024-11-03 02:59:03428Durchsuche

What are the practical limitations on string length in PHP?

Maximale Länge eines Strings in PHP

Strings in PHP unterliegen in 64-Bit-Builds gemäß PHP 7.0.0 keiner bestimmten Begrenzung hinsichtlich ihrer Länge. Bei 32-Bit-Builds und früheren Versionen gilt jedoch ein Limit von 2 GB (2147483647 Bytes).

In PHP 5.x waren Zeichenfolgen aufgrund der Verwendung auf 231-1 Bytes beschränkt einer vorzeichenbehafteten 32-Bit-Ganzzahl, um die Länge aufzuzeichnen.

Speicherlimit

PHP-Skripte haben eine Begrenzung des Gesamtspeichers, den sie für Variablen zuweisen können, wodurch die Länge von a effektiv begrenzt wird einzelne String-Variable. Dieses Limit wird durch die Direktive „memory_limit“ in php.ini festgelegt. Der Standardwert beträgt 128 MB in PHP 5.2 und 8 MB in früheren Versionen.

Wenn kein Speicherlimit angegeben ist, wird standardmäßig ein Wert verwendet, der während der Kompilierung festgelegt wird. Durch die Zuweisung eines Werts von -1 in php.ini werden Speicherprüfungen deaktiviert, sodass das Skript so viel Speicher verwenden kann, wie das Betriebssystem zur Verfügung stellt.

Praktische Einschränkungen

Die Speicherlimitanweisung führt zu einer praktischen Einschränkung unabhängig von der theoretischen Grenze. Darüber hinaus kann die Größe der Datei ein Faktor sein, wenn der Inhalt mithilfe von Funktionen wie file_get_contents() ermittelt wird.

Beispiel

Eine einfache Demonstration:

<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>

Hier: Es ist ein Speicherlimit von 1 MB festgelegt. Durch die Zuweisung von 255 KB String-Speicher wird der Grenzwert nicht überschritten, aber der Versuch, 256 KB zuzuweisen, löst aufgrund des Erreichens des Grenzwerts einen schwerwiegenden Fehler aus.

Das obige ist der detaillierte Inhalt vonWas sind die praktischen Einschränkungen der Stringlänge in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn