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:
1 2 3 4 5 |
<?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:
1 2 3 4 5 6 7 |
<?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.
Yorumlar
Elinize sağlık çok işime yaradı ..
hımm program yazmak gerçekten sorun o kadar kod aklında insan nasıl tutuyor? yada ek olarak kodları bir yere yazıp oradan COPY-PASTE mi yapıyor?
Varya sen adamın dibisin :D