Hata Denetim İşleçleriHata Denetim
PHP tek bir hata denetim işlecini destekler: kuyruklu a imi
(@). PHP'de bir deyimin başına getirildiğinde,
bu deyimin üreteceği olası hata iletileri engellenir.
set_error_handler ile özel bir hata işleyici işlevi
ayarlanırsa, tanılama bastırılmış olsa bile işlev çağrılır.
PHP 8.0.0'dan önce, özel hata işleyicisinden çağrılan
error_reporting işlevi, hata @
işleci ile bastırılmış olsa bile daima 0 döndürürdü.
PHP 8.0.0 ve sonrasında E_ERROR | E_CORE_ERROR |
E_COMPILE_ERROR | E_USER_ERROR | E_RECOVERABLE_ERROR | E_PARSE
bitsel ifadesinin değeri dönmektedir.
İfade tarafından üretilenhata iletisi, get_error_last
işlevinden dönen dizinin "message" elemanında bulunur.
Bu işlevin sonucu her hatada değişir, bu bakımdan sonuca yeterince kısa
sürede bakmak gerekir.
]]>
Kuyruklu a işleci sadece ifadelerin başında kullanıldığında çalışır. Kısaca: Bir değer
elde edilebilen herşeyin başına @ getirilebilir.
Örneğin, değişkenlerin işlev veya include
çağrılarının, sabitlerin ve benzerlerinin başına @
getirilebilir. Ama işlev veya sınıf tanımlarının veya
if ve &foreach; gibi denetim
yapılarının başına @ konamaz.
PHP 8.0.0 öncesinde, @ hata denetim işleci ile
betiğin çalışmasını sonlandıracak önemli hataların raporlanmasını
iptal etmek mümkündü.
Bu bakımdan, işleç örneğin bir işlevden kaynaklanabilecek hataları
bastırmak için kullanılıyorsa, işlev tanımında yapılan yazım hataları
nedeniyle veya işlevin yokluğu halinde, ne olup bittiği anlaşılamadan
betik sonlanabiliyordu.
&reftitle.seealso;
error_reportingHata İşleme İşlevleri