ホームページ  >  記事  >  バックエンド開発  >  PHP での「許可されたメモリ サイズが使い果たされました」エラーを最小限の中断で処理する方法

PHP での「許可されたメモリ サイズが使い果たされました」エラーを最小限の中断で処理する方法

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-24 11:48:29327ブラウズ

How to Handle 'Allowed Memory Size Exhausted' Errors in PHP with Minimal Disruption

PHP での「許可されたメモリ サイズが枯渇しました」エラーの処理

JSON 応答を返すスクリプトを使用する場合、「許可されたメモリ サイズが枯渇しました」エラーが発生することが懸念される場合があります。 。メモリ制限の増加を避けるために、リクエストがメモリしきい値を超えたことをユーザーに通知することをお勧めします。

致命的なエラーのキャッチ

PHP では、次のような致命的なエラーを直接キャッチすることはできません。メモリサイズの枯渇。ただし、 register_shutdown_function を使用して、error_get_last() をチェックするコールバックを登録できます。

<code class="php">register_shutdown_function(function() {
    $error = error_get_last();
    if ($error) {
        echo 'An error occurred: ' . $error['message'];
    }
});</code>

エラー出力の管理

致命的なエラーによるスクリプトのクラッシュを防ぐには、問題のあるコードによって生成された出力。 @ 演算子 (非推奨) を使用するか、ini_set('display_errors', false) を設定できます。

<code class="php">ini_set('display_errors', false);
error_reporting(-1);

set_error_handler(function($code, $string, $file, $line){
    throw new ErrorException($string, null, $code, $file, $line);
});

register_shutdown_function(function() {
    $error = error_get_last();
    if ($error) {
        echo 'Memory limit exhausted. Please try reissuing the request with different parameters.';
    }
});</code>

過剰なメモリ使用量でこのスクリプトを実行すると、適切なエラー メッセージを表示し、メモリ消費量を減らすために調整を行うようユーザーに通知します。

考慮事項

他のエラーが引き続き表示されるように、error_reporting() を高く保ちます。致命的ではないエラーの場合は、エラー処理に set_error_handler() および ErrorException を使用することを検討してください。

以上がPHP での「許可されたメモリ サイズが使い果たされました」エラーを最小限の中断で処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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