エラー ハンドラのコードが StackOverFlow で見つかりました。私が直面している問題は、トピックのスターターが尋ねた場所とまったく同じです。
エラーは単に報告されません。まともなエラーハンドラーが本当に必要なので、少しイライラします。ジョセフ・レントンの美しいものを見つけましたが、それは私が作りたいものすべてを絶対に壊してしまうので、自分に合ったものを作る必要があります.
問題:
エラーは報告されませんか?? :S
<?php
class class_error
{
public function __construct()
{
// set to the user defined error handler
set_error_handler([$this, 'errorHandler']);
}
public function errorHandler($errno, $errstr, $errfile, $errline)
{
//don't display error if no error number
if (!(error_reporting() & $errno)) {
return;
}
//display errors according to the error number
switch ($errno)
{
case E_USER_ERROR:
echo "<b>ERROR</b> [$errno] $errstr<br />\n";
echo " Fatal error on line $errline in file $errfile";
echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";
echo "Aborting...<br />\n";
exit(1);
break;
case E_USER_WARNING:
echo "<b>WARNING</b> [$errno] $errstr<br />\n";
break;
case E_USER_NOTICE:
echo "<b>NOTICE</b> [$errno] $errstr<br />\n";
break;
default:
echo "<b>UNKNOWN ERROR</b> [$errno] $errstr<br />\n";
break;
}
//don't execute PHP internal error handler
return true;
}
}
?>
私はスクリプトを呼び出します:
<?php
include('function.errorhandler.class.php');
$error = new class_error();
echo 'dssd;
?>
私はまだ同じ古い PHP 生成エラーを取得し続けます。:o
最も単純なことを機能させることは再び不可能に思われるので、基本に戻りましょう。
<?php
include('function.errorhandler.class.php');
///######## DEFAULT ERROR HANDLER
set_error_handler('ErrorHandler');
///######## SHUTDOWN HANDLER
register_shutdown_function('FatalErrorHandler');
///######## A FILE BECAUSE PHP DOES NOT WANT TO ACCEPT ANY ERROR HANDLER IN THE SAME FILE
include('hi.php');
?>
また、errorhandler.class ファイルで次のように定義されています。
function ErrorHandler(){
exit(print_r(func_get_args()));
}
function FatalErrorHandler(){
exit(print_r(func_get_args()));
}
それでも、同じ古いさびた PHP エラー通知が表示されます。
( ! ) 解析エラー: 構文エラー、予期しない ''sdds; ' (T_ENCAPSED_AND_WHITESPACE) in N:\wamp\www\project\errorhandler\hoi.php 行 3 コール スタック
タイムメモリー機能の場所
1 0.0003 240376 {main}( ) ..\errorHandler.php:0 配列 ( ) 1