PHP 7.4.24 Released!

$php_errormsg

(PHP 4, PHP 5, PHP 7)

$php_errormsgDie vorangegangene Fehlermeldung

Warnung

Dieses Feature ist seit PHP 7.2.0 als DEPRECATED (veraltet) markiert. Von der Verwendung dieses Features wird dringend abgeraten.

Stattdessen sollte error_get_last() verwendet werden.

Beschreibung

$php_errormsg ist eine Variable, die den Text der letzten von PHP generierten Fehlermeldung enthält. Die Variable ist nur innerhalb des Gültigkeitsbereichs (Scopes) verfügbar, in dem der Fehler auftrat, und auch nur, wenn die Konfigurationsoption track_errors eingeschaltet wurde (standardmäßig aus).

Warnung

Wird ein benutzerdefinierter Errorhandler (set_error_handler()) verwendet, wird $php_errormsg nur dann gesetzt, wenn der Errorhandler false zurückgibt.

Changelog

Version Beschreibung
8.0.0 Die Direktive track_errors, die bewirkte, dass $php_errormsg verfügbar war, wurde entfernt.
7.2.0 Die Direktive track_errors, die bewirkt, dass $php_errormsg verfügbar ist, ist nun veraltet.

Beispiele

Beispiel #1 $php_errormsg-Beispiel

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

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Wrong parameter count for strpos()

Siehe auch

add a note add a note

User Contributed Notes 4 notes

up
10
quickshiftin at gmail dot com
8 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
4 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
12 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
10 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