Lorsque vous travaillez avec des scripts qui renvoient des réponses JSON, rencontrer l'erreur « Taille de mémoire autorisée épuisée » peut être un problème . Pour éviter d'augmenter la limite de mémoire, vous souhaiterez peut-être informer l'utilisateur que sa requête a dépassé le seuil de mémoire.
En PHP, vous ne pouvez pas détecter directement les erreurs fatales comme le épuisement de la taille de la mémoire. Cependant, vous pouvez utiliser la fonction register_shutdown_function pour enregistrer un rappel qui vérifie error_get_last().
<code class="php">register_shutdown_function(function() { $error = error_get_last(); if ($error) { echo 'An error occurred: ' . $error['message']; } });</code>
Pour éviter que l'erreur fatale ne fasse planter le script, vous devez gérer le sortie générée par le code incriminé. Vous pouvez utiliser l'opérateur @ (non recommandé) ou définir 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>
Lors de l'exécution de ce script avec une utilisation excessive de la mémoire, il affichera le message d'erreur approprié, informant l'utilisateur de faire des ajustements pour réduire la consommation de mémoire.
Gardez error_reporting() élevé pour garantir que les autres erreurs sont toujours visibles. Pour les erreurs non fatales, pensez à utiliser set_error_handler() et ErrorException pour la gestion des erreurs.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!