我想設置一個自定義的錯誤處理,但得到以下錯誤爲什麼這不是一個有效的回調
Warning: set_error_handler() expects the argument (error::handler) to be a valid callback
這是我打電話的set_error_handler
功能
require_once('autoloader.php');
set_error_handler(array(error::class, "handler"));
class error {
static public $allErrors;
static private $err;
public static function handler($errno, $errstr, $errfile, $errline, $errcontext) {
global $errors;
if ($errors == 1 || ($errors == 2 && $errno == E_WARNING)) {
if ($errno == E_ERROR || substr($errstr, 0, 6) == 'mysqli') {
?>
<div class='errorbox' style='background: #990000;padding: 10px; color: #FFF; font-size: 10px;'><strong><?= $errstr ?></strong><br/><br/>
FILE: <?= $errfile ?> <br/>
LINE: <?= $errline ?> <br/><?
?>
<pre>INFO: <?= print_r($errcontext, true) ?></pre></div><br/><?
} else {
?><br/><font color='blue'><strong><?= $errstr ?></strong><br/>
FILE: <?= $errfile ?> <br/>
LINE: <?= $errline ?> <br/></font><br/><?
}
}
}
}
的錯誤類在另一個文件中,我沒有複製到整個類中。我一直在閱讀各地的網絡,我似乎正確地調用該方法,所以我不清楚爲什麼我收到一個警告 - 任何人都可以解釋,並告訴我如何解決
你確定它應該是_static_方法嗎? –
什麼版本的PHP? – axiac
此代碼的工作就php5.6.19但我不得不刪除您的處理函數裏面的HTML,你有內部 – MacBooc