Operátory řízení chyb

PHP podporuje jeden operátor řízení chyb: znak at (@). Když ho předřadíte výrazu v PHP, jakékoli chybové zprávy, které se mohou generovat ve výrazu, budou ignorovány.

Pokud je zapnutotrack_errors, budou se všechny chybové zprávy generované výrazem ukládat do globální proměnné $php_errormsg. Tato proměnná bude přepsána při každé chybě, takže ji testujte vždy co nejdříve, pokud ji chcete používat.

<?php
/* Intentional file error */
$my_file = @file ('non_existent_file') or
    die ("Failed opening file: error was '$php_errormsg'");

// this works for any expression, not just functions:
$value = @$cache[$key]; 
// will not issue a notice if the index $key doesn't exist.

?>

Poznámka: Operátor @ pracuje pouze na výrazech. Platí jednoduché pravidlo: můžete-li získat hodnotu něčeho, můžete před to dát operátor @. To se týká například proměnných, funkcí, volání include() konstant a podobně. Nemůžete ho předřadit definicím funkcí nebo tříd a podmínkovým strukturám typu if nebo foreach.

Viz také error_reporting().

Varování

V současnosti předřazení operátoru řízení chyb "@" vyřadí i hlášení kritických chyb, které způsobí ukončení provádění skriptu. To mj. znamená, že pokud použijete "@" k potlačení chyb z nějaké funkce, a tato funkce není k dispozici nebo obsahuje chyby, skript zde skončí bez jakékoli indikace, co se stalo.