Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

PHP Error Handling error_clear_last() Function



The PHP Error Handling error_clear_last() function is used to remove the most recent error that occurred in your script. The error_get_last() function allows you to get the information that PHP records about errors. But there are events in which you might want to remove or reset this error information. Here is where error_clear_last() is useful. It removes the previous error so that your script can restart.

This function does not take any input and does not return anything. It allows you to handle new errors without slow down by previous errors. Use it to keep your error-handling system clean when needed.

Syntax

Below is the syntax of the PHP Error Handling error_clear_last() function −

array error_get_last ();

Parameters

This function does not accept any parameter.

Return Value

The error_clear_last() function returns an associative array showing the most recent error, with keys "type", "message", "file", and "line". If the problem was caused by a PHP internal function, the "message" will begin with its name. Returns null if there hasn't been an error yet.

PHP Version

First introduced in core PHP 5.2.0, the error_clear_last() function continues to function easily in PHP 7, and PHP 8.

Example 1

This program shows how to clear the last error and make sure no errors are left after executing the PHP Error Handling error_clear_last() function. It is a simple example of knowing the working of this function.

<?php
   // Trigger an error intentionally
   @file_get_contents("file_not_present.txt");

   // Display the last error
   print_r(error_get_last());

   // Clear the last error
   error_clear_last();

   // Verify that the error has been cleared
   var_dump(error_get_last());
?>

Output

Here is the outcome of the following code −

Array
(
   [type] => 2
   [message] => file_get_contents(nonexistent_file.txt): Failed to open stream: No such file or directory
   [file] => /Users/abc/Desktop/PhpProjects/index.php
   [line] => 9
)
NULL

Example 2

In the below PHP program we will handle errors in a loop and use the error_clear_last() function. This example clears the error in each iteration of a loop to prevent interference from previous errors. It is useful when dealing with a large number of operations that can fail.

<?php
   $files = ["file1.txt", "file2.txt", "file_not_present.txt"];

   foreach ($files as $file) {
      // Attempt to open each file
      @file_get_contents($file); 

      // Display the error if it exists
      print_r(error_get_last());

      // Clear the error for the next iteration
      error_clear_last();
   }
?> 

Output

This will generate the below output −

Array
(
   [type] => 2
   [message] => file_get_contents(file1.txt): Failed to open stream: No such file or directory
   [file] => /Users/abc/Desktop/PhpProjects/index.php
   [line] => 11
)
Array
(
   [type] => 2
   [message] => file_get_contents(file2.txt): Failed to open stream: No such file or directory
   [file] => /Users/abc/Desktop/PhpProjects/index.php
   [line] => 11
)
Array
(
   [type] => 2
   [message] => file_get_contents(nonexistent_file.txt): Failed to open stream: No such file or directory
   [file] => /Users/abc/Desktop/PhpProjects/index.php
   [line] => 11
)

Example 3

This example shows how to make sure only new errors are logged by clearing previous errors before running a sensitive operation using the error_clear_last() method. This keeps the error-handling process clean and systematic.

<?php
   // Log error-free start
   error_clear_last();

   // Cause an error
   @file_get_contents("missing_file.txt");

   // Log the new error
   $error = error_get_last();
   if ($error) {
      echo "Error logged: " . $error['message'] . "\n";
   }

   // Clear the error 
   error_clear_last();
?> 

Output

This will create the below output −

Error logged: file_get_contents(missing_file.txt): Failed to open stream: No such file or directory
php_function_reference.htm
Advertisements