Die maximale Länge eines Strings in PHP
In PHP ist die Länge eines Strings durch den verfügbaren Speicher im System begrenzt. Die maximale Größe eines Strings ist plattformabhängig, wobei 64-Bit-Builds beliebig große Strings verarbeiten können.
In PHP 5.x waren Strings auf 231-1 begrenzt Bytes, da die Länge in einer vorzeichenbehafteten 32-Bit-Ganzzahl gespeichert wurde. Diese Einschränkung wurde jedoch in PHP 7.0.0 entfernt.
Praktische Überlegungen
Während Zeichenfolgen beliebig groß sein können, ist der Gesamtspeicher, der allen Variablen zugewiesen ist, in Die Ausführung eines einzelnen Skripts ist immer noch durch die Direktive „memory_limit“ in php.ini begrenzt. Dieses Limit ist in PHP 5.2 normalerweise auf 128 MB und in früheren Versionen auf 8 MB festgelegt.
Wenn das Speicherlimit nicht explizit in php.ini festgelegt ist, wird der Standardwert verwendet, der je nach Konfiguration der PHP-Binärdatei variiert. Wenn Sie das Speicherlimit auf -1 festlegen, wird diese Prüfung effektiv deaktiviert und das Skript kann so viel Speicher wie möglich verwenden.
Beispiel aus der Praxis
Das folgende PHP-Skript demonstriert dies die Beziehung zwischen der Speichergrenze und der Zeichenfolgengröße:
<code class="php">// Limit memory usage to 1MB ini_set('memory_limit', 1024*1024); // Initially, PHP seems to allocate 768KB for basic operation printf("memory: %d\n", memory_get_usage(true)); // Allocate a string of 255KB $str = str_repeat('a', 255*1024); echo "Allocated string of 255KB\n"; // Now we have allocated all of the 1MB of memory allowed printf("memory: %d\n", memory_get_usage(true)); // Attempting to allocate a string larger than the memory limit will cause a fatal error $str = str_repeat('a', 256*1024); echo "Allocated string of 256KB\n"; printf("memory: %d\n", memory_get_usage(true));</code>
Bei der Ausführung gibt dieses Skript Folgendes aus:
memory: 768000 Allocated string of 255KB memory: 1023952
Dies zeigt, dass der zugewiesene Speicher die Grenze erreicht, sobald die Zeichenfolge 255 KB erreicht . Der Versuch, eine größere Zeichenfolge zuzuweisen, führt zu einem schwerwiegenden Fehler.
Das obige ist der detaillierte Inhalt vonWas ist die maximale Länge eines Strings in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!