echo $begrüßung;
Es wird (logischerweise), die __LINE__ ausgegeben, in der "__LINE__" in der functions.inc.php steht, und nicht die, in dem Script, in dem ich fehler() aufgerufen habe.
Works as designed.
Und das selbe Problem mit PHP_SELF, es wird dann "functions.inc.php" ausgegeben, anstatt die Datei, in der ich die Funktion aufgerufen habe.
Du meinst nicht zufälligerweise __FILE__? $PHP_SELF sollte zugunsten von $_SERVER['PHP_SELF'] nicht mehr verwendet werden.
Natürlich könnte ich die Funktion jetzt so umbauen, dass ich Sie mit fehler("Fehlermeldung",__LINE__,$PHP_SELF,mysql_error()); aufrufen kann.
Aber ich möchte Sie einfach kurz und knackig per fehler("Fehlermeldung"); aufrufen können und alle Daten drinhaben - ohne die 3 Zusatzargumente.
Hat evtl. jemand einen Lösungsvorschlag bzw. eine Alternative?
Ein eigener Errorhandler bekommt ohne weiteres Zutun als Parameter die gewünschten Angaben übergeben (abgesehen von den MySQL-Fehlern). Wenn du selbst einen Fehler mittels trigger_error() erzeugst, hast du somit die Angaben. Außerdem gibt es noch debug_backtrace().
echo "$verabschiedung $name";