error_reporting ayarı
error_reporting ve ini_set ile hangi hataların gösterileceğini ayarlamayı öğrenirsin.
error_reporting ne işe yarar?
PHP farklı önem seviyelerinde hata üretir: E_ERROR ölümcül, E_WARNING uyarı, E_NOTICE bilgi, E_ALL hepsi. Her seviye farklı bir ciddiyeti temsil eder.
error_reporting(E_ALL) hangi seviyelerin raporlanacağını seçer. Geliştirme ortamında E_ALL, üretimde yalnızca E_ERROR kullanılır.
Bu ayar php.ini'de veya ini_set() ile betik içinden değiştirilebilir.
display_errors ve ini_set
error_reporting hangi hataları yakalayacağını söyler; display_errors ise yakalananların ekrana basılıp basılmayacağını belirler. İkisi farklı işler yapar.
ini_set('display_errors', '1') geliştirmede hataları gösterir; '0' üretimde gizler. Üretimde hataları log'a yazıp kullanıcıdan gizlersin, çünkü ayrıntılı hata mesajları güvenlik açığı olabilir.
Bu iki ayar birlikte çalışır: error_reporting yakalar, display_errors ekrana yansıtır.
Uygulama Hata raporlamayı ayarla
error_reporting(E_ALL) ve ini_set('display_errors', '1') çağrılarını yaz. Sonra if (error_reporting() === E_ALL) ile kontrol edip 'E_ALL aktif' yazdır.
Örnek çözümü göster
error_reporting(E_ALL); ve ini_set('display_errors', '1'); çağrılarını yaz. Sonra if (error_reporting() === E_ALL) { echo "E_ALL aktif\n"; } yaz.
Örnek çözüm:
<?php
// error_reporting ve display_errors ayarla, sonra E_ALL aktif yazdır
error_reporting(E_ALL);
ini_set('display_errors', '1');
if (error_reporting() === E_ALL) {
echo "E_ALL aktif\n";
}
Kendini test et
-
Tüm hataları göstermek için ne kullanılır?
- error_reporting(0);
- error_reporting(E_ALL);
- error_reporting(E_ERROR);
- ini_set('errors', 1);
Cevabı göster
error_reporting(E_ALL); — Doğru. error_reporting(E_ALL) tüm seviyeleri raporlar.
-
Tüm hataları raporla
<?php ____(E_ALL); ini_set('display_errors', '1'); $cfg = ['level' => E_ALL]; echo $cfg['level'] . "\n";Cevabı göster
<?php error_reporting(E_ALL); ini_set('display_errors', '1'); $cfg = ['level' => E_ALL]; echo $cfg['level'] . "\n"; -
Hata seviyelerini eşleştir
- E_ERROR
- Ölümcül hata
- E_WARNING
- Uyarı
- E_NOTICE
- Bilgi
- E_ALL
- Tüm hatalar