downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

error_log> <debug_print_backtrace
Last updated: Fri, 06 Nov 2009

view this page in

error_get_last

(PHP 5 >= 5.2.0)

error_get_lastGet the last occurred error

Description

array error_get_last ( void )

Gets information about the last error that occurred.

Return Values

Returns an associative array describing the last error with keys "type", "message", "file" and "line". Returns NULL if there hasn't been an error yet.

Examples

Example #1 An error_get_last() example

<?php
echo $a;
print_r(error_get_last());
?>

The above example will output something similar to:

Array
(
    [type] => 8
    [message] => Undefined variable: a
    [file] => C:\WWW\index.php
    [line] => 2
)



error_log> <debug_print_backtrace
Last updated: Fri, 06 Nov 2009
 
add a note add a note User Contributed Notes
error_get_last
iant at clickwt dot com
05-Nov-2009 03:13
Beware that registing a shutdown function to catch errors won't work if other shutdown functions throw errors.

<?php

register_shutdown_function
('cleanupObjects');
register_shutdown_function('handleFatalPhpError');

function
cleanupObjects() {
  
trigger_error('An insignificant problem', E_USER_WARNING);
}

function
handleFatalPhpError() {
  
$last_error = error_get_last();
   if(
$last_error['type'] === E_ERROR || $last_error['type'] === E_USER_ERROR) {
      echo
"Can do custom output and/or logging for fatal error here...";
   }
}

trigger_error('Something serious', E_USER_ERROR);

?>

In the above code, $last_error will contain the warning, becuase cleanupObjects() is called first.
michael at getsprink dot com
10-Aug-2009 03:15
The error_get_last() function will give you the most recent error even when that error is a Fatal error.

Example Usage:

<?php

register_shutdown_function
('handleFatalPhpError');

function
handleFatalPhpError() {
  
$last_error = error_get_last();
   if(
$last_error['type'] === E_ERROR) {
      echo
"Can do custom output and/or logging for fatal error here...";
   }
}

?>
phil at wisb dot net
04-Dec-2008 10:12
While mail at mbaierl dot com makes the point that this function isn't best for reporting the possible error condition of the most recently executed step, there are situations in which it is especially helpful to know the last error—regardless of when it occurred.

As an example, imagine if you had some code that captured the output from dynamic pages, and cached it for faster delivery to subsequent visitors. A final sanity check would be to see if an error has occurred anywhere during the execution of the script. If there has been an error, we probably don't want to cache that page.
Brad
16-Jun-2008 04:54
Like $php_errormsg, the return value of this function may not be updated if a user-defined error handler returns non-FALSE. Tested on PHP 5.2.6.

<?php
var_dump
(PHP_VERSION);
// Outputs: string(5) "5.2.6"

@trigger_error("foo");
$e=error_get_last();
var_dump($e['message']);
// Outputs: string(3) "foo"

set_error_handler(create_function('$a,$b',''));

@
trigger_error("bar");
$e=error_get_last();
var_dump($e['message']);
// Outputs: string(3) "foo"

set_error_handler(create_function('$a,$b','return false;'));

@
trigger_error("baz");
$e=error_get_last();
var_dump($e['message']);
// Outputs: string(3) "baz"
?>
Brad
16-Jun-2008 04:36
It can't be completely reset, but you can "clear" it well enough for all practical purposes:
<?php
@trigger_error("");
// do stuff...
$e=error_get_last();
if(
$e['message']!==''){
   
// An error occurred
}
?>
mail at mbaierl dot com
04-Jun-2008 10:21
This function is pretty useless, as it can not be reset, so there is no way to know if the error really happened on the line before this function call.

error_log> <debug_print_backtrace
Last updated: Fri, 06 Nov 2009
 
 
show source | credits | sitemap | contact | advertising | mirror sites