$php_errormsg

$php_errormsg前一个错误信息

Warning

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

说明

$php_errormsg 变量包含由 PHP 生成的最新错误信息。这个变量只在错误发生的作用域内可用,并且要求 track_errors 配置项是开启的(默认是关闭的)。

Warning

如果用户定义了错误处理句柄(set_error_handler())并且返回 FALSE 的时候,$php_errormsg 就会被设置。

范例

Example #1 $php_errormsg 范例

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

以上例程的输出类似于:

Wrong parameter count for strpos()

User Contributed Notes

myuezhu at gmail dot com 04-Aug-2017 10:29
$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
quickshiftin at gmail dot com 08-Jan-2013 06:19
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;
}
?>
josh at karmabunny dot com dot au 04-Jul-2011 09:41
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);
?>
ryan kulla 19-Jan-2009 08:32
Note: This variable doesn't seem to get populated if you're running Xdebug.