$php_errormsg
前一个错误信息
WarningThis feature has beenDEPRECATEDas of PHP 7.2.0. Relying on this featureis 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()
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; } ?>
Note: This variable doesn't seem to get populated if you're running Xdebug.
$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
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); ?>