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.
error_get_last
(PHP 5 >= 5.2.0)
error_get_last — 最後に発生したエラーを取得する
説明
array error_get_last
( void
)
最後に発生したエラーについての情報を取得します。
返り値
最後に発生したエラーについての情報を連想配列で返します。連想配列のキーは "type"、"message"、"file" および "line" となります。 エラーが発生していない場合は NULL を返します。
例
例1 error_get_last() の例
<?php
echo $a;
print_r(error_get_last());
?>
上の例の出力は、たとえば 以下のようになります。
Array
(
[type] => 8
[message] => Undefined variable: a
[file] => C:\WWW\index.php
[line] => 2
)
error_get_last
phil at wisb dot net
05-Dec-2008 02:12
05-Dec-2008 02:12
Brad
16-Jun-2008 09:54
16-Jun-2008 09: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 09:36
16-Jun-2008 09: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 03:21
04-Jun-2008 03: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.
