CodeBlanks Logo Icon CodeBlanks

error_reporting ayarı

PHP kursu · Orta seviye · Ders 102/115

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

  1. 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.

  2. 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";
    
  3. Hata seviyelerini eşleştir

    E_ERROR
    Ölümcül hata
    E_WARNING
    Uyarı
    E_NOTICE
    Bilgi
    E_ALL
    Tüm hatalar

Orta seviye bölümündeki tüm dersler