エラーとエラーログを表示するために使用するクラスを作成しようとしています。
class CError {
//Error Logging
var $Log;
public function Log($Comment, $Detail = ""){
$Log .= $Comment . "\n";
if ($Detail !== ""){
$Log .= "--" . $Detail . "--\n";
}
}
public function Clear_Log(){
$Log = "";
}
public function Display_Log(){
echo $this->Log;
}
//Error Display
var $ErrorCode = array(
0 => "0: No Error Code found, so either you got here by some rogue code or ...",
1 => "1: General Error, if you are here something went wrong",
2 => "2: Invalid information provided",
3 => "3: Alternate path taken, check message for details",
42 => "42: Here is your answer, but do you know the question?",
50 => "50: You messed with the Creepers without your Diamond Sword, didn't you",
9001 => "9001: Its over 9000... or more likely a value used was to large",
418 => "418: I'm a Teapot, found the error that drove you crazy"
);
public function Error($Error = 0, $ShowLog = false){
if ($Error === ""){
$Error = 0;
}
foreach ($ErrorCode as $key => $value){
if($key == $Error){
echo "<h3 style='color:red'>" . $value . "</h3><br />";
}
}
if($ShowLog == true){
echo $this->Log;
}
}
}
これが私がエラークラスを使用する方法です
include 'CError.php';
$Error = new CError;
$Error->Log("Email is Required");
$Error->Display_Log();
$Error->Error(2,true);
問題は、使用しても何も表示されないことです。スキップされると思いますが、よくわかりません。サーバーのエラーログにアクセスできないため、エラーが発生しているかどうかはわかりませんが、コードはメインコードの出口ポイントまで実行されます(クラスとは関係ありません)。
- 編集 -
$Logを$this->Logで変更するように指示する回答により、$Log変数の問題が修正されました。foreachループに表示されるエラーコード配列の問題はまだ修正されていません。
- 編集 -
$this->ErrorCodeをforeachループに追加することで問題を解決しました。