ホームページ  >  記事  >  バックエンド開発  >  PHP の文字列の最大長はどれくらいですか?

PHP の文字列の最大長はどれくらいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-01 04:54:02791ブラウズ

What is the Maximum Length of a String in PHP?

PHP の文字列の最大長

PHP では、文字列の長さはシステムで利用可能なメモリによって制限されます。文字列の最大サイズはプラットフォームに依存し、64 ビット ビルドでは任意の大きな文字列を処理できます。

PHP 5.x では、文字列は 231-1 に制限されていました。バイト。長さは符号付き 32 ビット整数で格納されます。ただし、この制限は PHP 7.0.0 で削除されました。

実際的な考慮事項

文字列のサイズは任意に大きくできますが、文字列のすべての変数に割り当てられる合計メモリは単一のスクリプトの実行は、php.ini のmemory_limit ディレクティブによって引き続き制限されます。この制限は通常、PHP 5.2 では 128MB、以前のリリースでは 8MB に設定されています。

メモリ制限が php.ini で明示的に設定されていない場合は、デフォルト値が使用されます。この値は、PHP バイナリの構成によって異なります。メモリ制限を -1 に設定すると、このチェックが効果的に無効になり、スクリプトが可能な限り多くのメモリを使用できるようになります。

実際の例

次の PHP スクリプトは、次のことを示しています。メモリ制限と文字列サイズの関係:

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

実行すると、このスクリプトは次のように出力されます:

memory: 768000
Allocated string of 255KB
memory: 1023952

これは、文字列が 255KB に達すると、割り当てられたメモリが制限に達することを示しています。 。それより大きな文字列を割り当てようとすると、致命的なエラーが発生します。

以上がPHP の文字列の最大長はどれくらいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。