$php_errormsg

(PHP 4, PHP 5, PHP 7)

$php_errormsgПредыдущее сообщение об ошибке

Внимание

Эта функциональность объявлена УСТАРЕВШЕЙ начиная с PHP 7.2.0 и её крайне не рекомендуется использовать.

Используйте функцию error_get_last().

Описание

$php_errormsg является переменной, содержащей текст последней ошибки, сгенерированной PHP. Эта переменная будет доступна только в блоке кода, в котором случилась ошибка, и только если включена конфигурационная опция track_errors (по умолчанию отключена).

Внимание

Если настроен пользовательский обработчик ошибок (set_error_handler()), то $php_errormsg устанавливается только в том случае, если обработчик ошибки возвращает false.

Список изменений

Версия Описание
8.0.0 Директива track_errors, из-за которой становится доступным $php_errormsg, была удалена.
7.2.0 Директива track_errors, из-за которой становится доступным $php_errormsg, была объявлена устаревшей.

Примеры

Пример #1 Пример использования $php_errormsg

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

Вывод приведённого примера будет похож на:

Wrong parameter count for strpos()

Смотрите также

  • error_get_last() - Получение информации о последней произошедшей ошибке

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