Skip to content

Fatal error: Cannot redeclare function Hatası

Merhaba arkadaşlar,

Sıkıcı bir günün ardından PHP programlamaya yeni başlayanların hep başına gelen bir hatadan bahsediyorum.

Fatal error: Cannot redeclare function

Bu hata ile bende zamanında çok karşılaşıyordum. Düzensiz bir template sistemim olurdu. Template dosyamın içinde bir fonksiyon oluştururdum. Fakat aynı fonksiyonu asıl işlemlerimi yaptığım sayfada da tanımlıyordum. Bu şekilde iki farklı yerde aynı adla iki fonksiyon tanımlayınca PHP’nin kafası karışıyor ve hata veriyor. Şimdi örnek bir fonksiyon yazalım:

<?php
function foo($deger) {
 return $deger;
}
?>

Bildiğiniz gibi programcı insan biraz tembel ve üşengeçtir. Bu nedenle bu fonksiyon var mı yok mu diye kontrole etmek yerine basit bir fonksiyon ise tekrar yazar template dosyasında. İşte bu noktada basit bir kontrolle bu işlemi hata almadan atlatabiliriz:

<?php
if(!function_exists('foo')){
    function foo($deger) {
         return $deger;
    }
}
?>

function_exists() fonksiyonu böyle bir fonksiyon var mı yok mu diye kontrol etmemizi sağlar. Eğer bu isimle bir fonksiyon tanımlı değilse yeni fonksiyonumuzu tanımlamamıza imkan verir.

Yeni yeni uğraşanlar için güzel bir makale oldu bence, kolay gelsin.

TR Kodlama GitHub'da!

TR Kodlama'da yer alan makaleleri GitHub üzerinden düzenleyebileceğinizi biliyor muyudunuz? Harika değil mi? Bu makale ile ilgili düzenleme yapmak isterseniz aşağıdaki butona tıklayınız!

GitHub'da Görüntüle ve Düzenle!