$php_errormsg

(PHP 4, PHP 5, PHP 7)

$php_errormsgThe previous error message

Warning

This feature has been DEPRECATED as of PHP 7.2.0. Relying on this feature is highly discouraged.

Use error_get_last() instead.

Description

$php_errormsg is a variable containing the text of the last error message generated by PHP. This variable will only be available within the scope in which the error occurred, and only if the track_errors configuration option is turned on (it defaults to off).

Warning

If a user defined error handler (set_error_handler()) is set $php_errormsg is only set if the error handler returns false.

Changelog

Version Description
8.0.0 Directive track_errors which caused $php_errormsg to be available has been removed.
7.2.0 Directive track_errors which caused $php_errormsg to be available has been deprecated.

Examples

Example #1 $php_errormsg example

<?php
@strpos();
echo 
$php_errormsg;
?>

The above example will output something similar to:

Wrong parameter count for strpos()

See Also

add a note add a note

User Contributed Notes 4 notes

up
10
quickshiftin at gmail dot com
11 years ago
While $php_errormsg is a global, it is not a superglobal.

You'll have to qualify it with a global keyword inside a function.

<?php
function checkErrormsg()
{
    global
$php_errormsg;
    @
strpos();
    return
$php_errormsg;
}
?>
up
3
ryan kulla
15 years ago
Note: This variable doesn't seem to get populated if you're running Xdebug.
up
0
myuezhu at gmail dot com
6 years ago
$php_errormsg does not contain the error message generated inside a function. See the example below:
<?php
@strpos();
function
checkErrormsg()
{
    global
$php_errormsg;
    echo
"First Error is: $php_errormsg <br />";
    @
ini_set();
    echo
"Error is: $php_errormsg";
}
checkErrormsg();
?>
This will output:
First Error is: strpos() expects at least 2 parameters, 0 given
Error is: strpos() expects at least 2 parameters, 0 given
up
-3
josh at karmabunny dot com dot au
12 years ago
The track_errors parameter is PHP_INI_ALL, so you can use code like this:

<?php
ini_set
('track_errors', 1);

$result = @do_risky_thing();
if (!
$result) {
    echo
'<p>Error' . htmlspecialchars($php_errormsg) . '</p>';
}

ini_set('track_errors', 0);
?>
To Top