Mein Wunsch jedoch wäre es, diese formatiert am Ende als Liste anzuzeigen.
Kann mir jemand erklären, wie ich diese Variablen in ein Array speichern kann und bei Bedarf das Array abzufragen?
1.)
Warum ein Array? Ein String genügt.
2.,)
Im Übrigen macht es nur Sinn den ersten Fehler anzusehen. Grund: Viele Fehler ziehen eine ganze Wulst _vermeintlicher_ weiterer Fehler nach sich.
// Das hier gehört in eine Konfigurationsdatei. Damit wird festgelegt, ob die Fehlerausgabe überhaupt stattfindet.
// Auf arbeitenden Servern sollte das vermieden werden.
define('DEBUG_On_Screen',TRUE);
function customError($errno, $errstr, $errfile, $errline, $fatal=FALSE) {
// Ob der Parameter fatal auf TRUE gesetzt wird musst Du beim Aufruf entscheiden.
// Dann wird das Programm "abgebrochen" und der Fehler ausgegeben.
// Globaler Speicher:
if (! isset($GLOBALS['Custom Errortext'])) {
$GLOBALS['Custom Errortext']='';
}
// Anhängen:
$GLOBALS['Custom Errortext'].= "
######################################################################
Error:</b> [$errno] $errstr
Line: $errline
File: $errfile
######################################################################
";
// Prüfen auf Ausgabe:
if ($fatal && DEBUG_On_Screen) {
PrintCustomError();
}
}
Diese Funktion nochmals ganz am Ende(!) aufrufen:
function PrintCustomError() {
// Prüfen ob $GLOBALS['Custom Errortext'] existiert und einen Inhalt hat:
if (DEBUG_On_Screen && isset($GLOBALS['Custom Errortext']) && $GLOBALS['Custom Errortext'] != '') {
// Ausgabe und exit
print '<pre style="display:block;visibility:visible;position:absolute;z-index:99">
'.$GLOBALS['Custom Errortext'].</pre>';
exit;
}
}
Dieser Code ist in "Phantastoskript" geschrieben und eine Handlungsanleitung welche die prinzipielle Vorgehensweise zeigt und soll nur eine umständliche oder unverständliche Beschreibung in menschlicher Sprache vermeiden. Er kann also fehlerhaft sein. Ähnlichkeiten zu PHP, Perl, Java, Javascript, Basic, VBA, VBS, C, C++ oder jeder anderen Programmiersprache sind rein zufällig.
In der Realität wird übrigens nicht mit einem einfachen DEBUG_On_Screen=true|false
gearbeitet, sondern mit einem DEBUG_LEVEL um eine abgestufte Fehlerreaktion zu ermöglichen.