$php_errormsg

(PHP 4, PHP 5, PHP 7)

$php_errormsgThe previous error message

Avertizare

Această facilitate este ÎNVECHITĂ începând cu PHP 7.2.0. Utilizarea acestei facilități este foarte nerecomandată.

Use error_get_last() instead.

Descrierea

$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).

Avertizare

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

Istoricul schimbărilor

Versiune Descriere
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.

Exemple

Example #1 $php_errormsg example

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

Exemplul de mai sus va afișa ceva similar cu:

Wrong parameter count for strpos()

A se vedea și

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
1
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
2
ryan kulla
15 years ago
Note: This variable doesn't seem to get populated if you're running Xdebug.
up
-5
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