Heim >Backend-Entwicklung >PHP-Tutorial >Wie groß kann ein String in PHP sein?

Wie groß kann ein String in PHP sein?

Barbara Streisand
Barbara StreisandOriginal
2024-11-02 21:45:02215Durchsuche

How Large Can a String Be in PHP?

Was ist die Obergrenze für die Stringlänge in PHP?

Abfrage:
Können Sie Licht ins Dunkel bringen? die Grenzen der String-Speicherkapazität in PHP? Ich habe versucht, es abzuschätzen, bin mir aber nicht sicher, ob der Speicher meines Systems (2 GB) für den Test ausreicht. Gibt es eine vordefinierte Obergrenze? Welche Aktionen werden ausgeführt, wenn eine Zeichenfolge diesen Schwellenwert überschreitet – Verkettung oder ein Fehler?

Antwort:
Laut der Dokumentation von PHP.net wurden Einschränkungen der Zeichenfolgenlänge in PHP 7.0.0 beseitigt für 64-Bit-Builds. Bei 32-Bit-Builds und früheren Versionen konnten Zeichenfolgen eine maximale Größe von 2 GB (2147483647 Bytes) erreichen.

In PHP 5.x waren Zeichenfolgen auf 231-1 Bytes beschränkt, weil Der interne Code verfolgte ihre Länge in einer 32-Bit-Ganzzahl mit Vorzeichen.

Zusätzliche Überlegungen:
Sie können den Inhalt einer gesamten Datei mit Funktionen wie file_get_contents() laden. Die Gesamtspeicherzuweisung eines PHP-Skripts für alle Variablen begrenzt jedoch die Länge einzelner Zeichenfolgenvariablen.

Speicherbegrenzungsrichtlinie:
Die Anweisung „memory_limit“ in der Konfigurationsdatei php.ini legt dies fest Limit. Der Standardwert beträgt 128 MB in PHP 5.2 und 8 MB in früheren Versionen.

Wenn „memory_limit“ in php.ini nicht festgelegt ist, wird standardmäßig der kompilierte Wert in der PHP-Binärdatei verwendet, der durch Neukompilieren von PHP mit einem benutzerdefinierten Standardwert geändert werden kann .

Wenn Sie „memory_limit“ in php.ini auf -1 setzen, wird die Prüfung deaktiviert und Ihr Skript kann so viel Speicher nutzen, wie das Betriebssystem zuweist (vorbehaltlich praktischer und systemspezifischer Einschränkungen).

Testbeispiel:
Der folgende Code zeigt, wie Speichernutzung und Zeichenfolgenzuordnungsgrenzen getestet werden:

<code class="php">// 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));</code>

Das obige ist der detaillierte Inhalt vonWie groß kann ein String in PHP sein?. 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