PHP kodundaki bir hata, programda beklenmeyen sonuçlara veya çökmeye yol açan bir hata anlamına gelir. Kullanıcılardan önce hataları bulma sürecine yönelik sistematik bir yaklaşıma hata ayıklama denir. Bu bölümde, bir PHP kodundaki hataları izlemek için bazı önemli ipuçları verilmiştir.
Programlar ilk seferde nadiren doğru çalışır. PHP yorumlayıcısının bir hata mesajı üretmesine neden olabilecek programınızda birçok şey ters gidebilir. Bu hata mesajlarının nereye gideceği konusunda bir seçeneğiniz vardır. Mesajlar diğer program çıktılarıyla birlikte web tarayıcısına gönderilebilir. Ayrıca "web sunucusu hata günlüğüne" de dahil edilebilirler.
Hata mesajlarının tarayıcıda görüntülenmesini sağlamak için "display_errors" yapılandırma yönergesini ON olarak ayarlayın. Aşağıdaki ayarların "php.ini" dosyasında etkinleştirildiğinden emin olun.
display_errors=On
display_startup_errors=On
"pnp.ini" yapılandırmasını geçersiz kılmak için
ini_set() fonksiyonunu da kullanabilirsiniz.
ini_set('display_errors', 1)
ini_set('display_startup_errors', 1)
Hataları web sunucusu hata günlüğüne göndermek için "log_errors"ı AÇIK olarak ayarlayın. Her iki yerde de hata mesajları istiyorsanız her ikisini de Açık olarak ayarlayabilirsiniz.
PHP, error_reporting değerini yalnızca belirli türdeki hataların raporlanmasını sağlayacak şekilde ayarlamak için kullanabileceğiniz bazı
sabitler tanımlar:
- E_ALL (kesin bildirimler hariç tüm hatalar için)
- E_PARSE (ayrıştırma hataları)
- E_ERROR (ölümcül hatalar)
- E_UYARI (uyarılar)
- E_BİLDİRİM (bildirimler)
- E_STRICT (kesin bildirimler)
PHP programınızı yazarken, BBEdit veya Emacs gibi PHP'ye duyarlı editörleri kullanmak iyi bir fikirdir. Bu editörlerin özel özelliklerinden biri sözdizimi vurgulamadır. Programınızın farklı bölümlerinin rengini, bu bölümlerin ne olduğuna göre değiştirir. Örneğin, dizeler pembe, if ve while gibi anahtar sözcükler mavi, yorumlar gri ve değişkenler siyahtır.
Microsoft'tan VS Code da PHP kodunu düzenlemek için iyi bir seçimdir. VS Code eklentisi Intelephense'i yüklerseniz, düzenleyici penceresine PHP ifadeleri girdiğinizde tür ipuçları ve hata mesajları alırsınız.
Başka bir özellik de tırnak işaretleri ve köşeli parantezlerin dengeli olduğundan emin olmanıza yardımcı olan tırnak işareti ve köşeli parantez eşleşmesidir. "}" gibi bir kapanış ayracı yazdığınızda, düzenleyici eşleşen açılış "{" öğesini vurgular.
Bir Kodu Hata Ayıklarken Kontrol Edilmesi Gereken Noktalar
Bir program kodunu hata ayıklarken aşağıdaki noktaların doğrulanması gerekir:
Eksik Noktalı Virgüller
Her PHP ifadesi noktalı virgülle ( ; ) biter. PHP bir ifadeyi noktalı virgüle ulaşana kadar okumayı bırakmaz. Bir satırın sonundaki noktalı virgülü çıkarırsanız, PHP ifadeyi bir sonraki satırda okumaya devam eder.
Yeterli Eşitlik İşareti Yok
Bir karşılaştırma ifadesinde iki değerin eşit olup olmadığını sorduğunuzda iki eşittir işaretine (==) ihtiyacınız vardır. Tek eşittir işareti kullanmak yaygın bir hatadır.
Yanlış Yazılan Değişken Adları
Bir değişkeni yanlış yazdıysanız PHP bunu yeni bir değişken olarak anlar. Unutmayın: PHP için $test, $Test ile aynı değişken değildir.
Eksik Dolar İşaretleri
Değişken adında eksik bir dolar işaretini görmek gerçekten zordur, ama en azından genellikle bir hata mesajıyla sonuçlanır, böylece sorunun nerede aranacağını bilirsiniz.
Rahatsız Edici Alıntılar
Çok fazla, çok az veya yanlış türde alıntılarınız olabilir. Bu yüzden dengeli sayıda alıntı olup olmadığını kontrol edin.
Eksik Parantezler ve Kıvrımlı Parantezler
Her zaman çiftler halinde olmalılar.
Dizi Dizini
PHP'de dizi, her bir öğeye 0'dan başlayarak artan bir indeks atanan bir öğe koleksiyonudur.
Ayrıca, tüm hataları düzgün bir şekilde ele alın ve tüm izleme mesajlarını sistem günlük dosyasına yönlendirin, böylece herhangi bir sorun olursa sistem günlük dosyasına kaydedilir ve bu sorunu giderebilirsiniz.