A PHP egy hibakezelő operátort támogat, az at (kukac) jelet (@). Ha egy PHP kifejezés elé írod, 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 ellenőrizd minél hamarabb a kifejezést követően ha használható információt szeretnél kapni.
<?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. Egy egyszerű ökölszabály, hogy ha valaminek az értékét tudod venni, akkor az elé a @ operátor is oda tehető. Például használhatod változók, függvények és include() hivások, konstansok, neve előtt és sok más esetben. Nem írhatod azonban oda függvény és osztály definíciók, vagy nyelvi szerkezetek (mint például if és foreach utasítások) elé.
Lásd még: error_reporting().
Figyelem |
Jelenleg a "@" hibakezelő operátor kikapcsolja azon kritikus hibák jelentését is, amik megállítják a szkript futását. Más problémák mellett, ha egy függvényből érkező hibaüzenetek elnyelésére használod a "@" jelet, meg fog állni a szkript futása, ha nem létezik a megadott függvény, vagy elírtad a nevét. |