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);
?>
$php_errormsg
(PHP 4, PHP 5)
$php_errormsg — 直近のエラーメッセージ
説明
$php_errormsg は、PHP によって発せられた 最後のエラーメッセージのテキストを格納する変数です。 エラーが発生したスコープ内、かつ track_errors 設定オプションが オン (デフォルトはオフ) にセットされている場合にのみ有効です。
注意: この変数は、track_errors が php.ini で有効になっている場合にのみ使用可能です。
警告
ユーザー定義のエラーハンドラ (set_error_handler())
が設定されている場合は、$php_errormsg
はエラーハンドラが FALSE を返した場合にのみ設定されます。
例
例1 $php_errormsg の例
<?php
@strpos();
echo $php_errormsg;
?>
上の例の出力は、 たとえば以下のようになります。
Wrong parameter count for strpos()
josh at karmabunny dot com dot au
04-Jul-2011 12:41
ryan kulla
19-Jan-2009 11:32
Note: This variable doesn't seem to get populated if you're running Xdebug.
