SELFPHP

SELFPHP-Druckversion
Original Adresse dieser Seite:
http://www.selfphp.de/praxisbuch/praxisbuchseite.php?site=125&group=24
© 2001-2017 E-Mail SELFPHP OHG, info@selfphp.de
© 2005-2017 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de


Fehlerkontroll-Operatoren


PHP unterstützt einen Operator zur Fehlerkontrolle. Es handelt sich hierbei um das @-Symbol. Stellt man @ in PHP vor einen Ausdruck, werden alle Fehlermeldungen, die von diesem Ausdruck erzeugt werden könnten, ignoriert.

Hinweis: Ist das track_errors-Feature aktiviert, werden alle Fehlermeldungen, die von diesem Ausdruck erzeugt werden, in der Variablen $php_errormsg gespeichert. Da diese Variable mit jedem neuen Auftreten eines Fehlers überschrieben wird, sollte man sie möglichst bald nach Verwendung des Ausdrucks überprüfen, wenn man mit ihr arbeiten will.

Beispiel

<?php
// Beabsichtigter Dateifehler
// Beabsichtigter Mailfehler
$email = @mail ('nicht_vorhandene_mail') or die ("Mail konnte nicht versandt werden:'$php_errormsg'");

// Das funktioniert bei jedem Ausdruck
// erzeugt keine Notice, falls der Index
// $key nicht vorhanden ist.
$value = @$cache[$key];
?>

Der @ Fehlerkontroll-Operator verhindert jedoch keine Meldungen, welche aus Fehlern beim Parsen resultieren.

Achtung: Der @-Operator funktioniert nur bei Ausdrücken. Eine einfache Daumenregel: Wenn Sie den Wert von etwas bestimmen können, dann können Sie den @-Operator davor schreiben. Zum Beispiel können Sie ihn vor Variablen, Funktionsaufrufe und vor include() setzen, vor Konstanten und so weiter. Nicht verwenden können Sie diesen Operator vor Funktions- oder Klassendefinitionen oder vor Kontrollstrukturen wie zum Beispiel if und foreach und so weiter.

Achtung: Zum gegenwärtigen Zeitpunkt deaktiviert der Fehlerkontroll-Operator @ die Fehlermeldungen selbst bei kritischen Fehlern, die die Ausführung eines Skripts beenden. Unter anderem bedeutet das, wenn Sie @ einer bestimmten Funktion voranstellen, diese aber nicht zur Verfügung steht oder falsch geschrieben wurde, Ihr PHP-Skript einfach beendet wird, ohne Hinweis auf die Ursache.