Hibakezelő operátorok

A PHP egy hibakezelő operátort támogat, az at jelet (@ - kukac). PHP kifejezés elé írva a kifejezés által esetlegesen generált hibaüzenete(ke)t figyelmen kívül hagyja a rendszer.

Ha a track_errors szolgáltatás be van kapcsolva, bármilyen a kifejezés által generált hibaüzenet a $php_errormsg globális változóba kerül tárolásra. Ez a változó minden hiba esetén felülíródik, ezért használható információk kinyerése érdekében a kifejezést követően ezt minél hamarabb ellenőrizni kell.

<?php
/* Szándékos állomány megnyitási hiba */
$file = @file ('nem_letezo_allomany') or
    die ("Nem lehet megnyitni, a hiba: '$php_errormsg'");

// bármilyen kifejezésre működik, nem csak függvényekre
$ertek = @$tomb[$kulcs];
// nem ad notice szintű hibát, ha a $kulcs kulcs nem létezik
?>

Megjegyzés: A @ operátor csak kifejezésekre működik. Egyszerű ökölszabályként alkalmazandó, ha valaminek az értelmezett az értéke, akkor az elé a @ operátor is oda tehető. Ekképpen például használható változók, függvények és include() hívások, állandók neve előtt és sok más esetben. Nem használható azonban függvény és osztály definíciók vagy nyelvi szerkezetek (mint például if és foreach utasítások) előtt.

Lásd még: error_reporting()!

Figyelem

Jelenleg a "@" hibakezelő operátor kikapcsolja azon kritikus hibák jelentését is, amelyek megszakítják a szkript futását. Más problémák mellett, ha függvényből érkező hibaüzenetek elnyelésére használod a "@" jelet, le fog állni a szkript futása, ha nem létezik a megadott függvény vagy elírtad annak nevét.