PHP: fonksiyonlarını redeclaring nasıl engellenebilir?

4 Cevap php

Ben gibi hataları almak eğilimindedir:

Fatal error: Cannot redeclare get_raw_data_list() (previously declared in /var/www/codes/handlers/make_a_thread/get_raw_data_list.php:7) in /var/www/codes/handlers/make_a_thread/get_raw_data_list.php on line 19

Ben nasıl hata önleyebilirsiniz? Bir işlev bildirerek önce bildirilmiş olup olmadığını kontrol etmek için bir IF-madde oluşturmak mümkün mü?

4 Cevap

if(!function_exists("get_raw_data_list")) {
... define function here ...
}

http://us.php.net/function%5Fexists

Bir fonksiyon zaten ilan edilmiş ise "function_exists" size söyleyecektir. Belki bir kez daha fazla dosya içeren bir sorun var şüpheli olsa. Bir dosyayı eklediğinizde require_oncenin veya include_onceyi kullanarak ya da sadece include / gerektirir?

Eğer Sınıflar ile ilgili ise method_exists() aradığınız şey olabilir:

if(!method_exists(__CLASS__, 'function_name')){
    function function_name(){

    }
}

Bu fonksiyon function_name beyan denemeden önce yok emin olmak için mevcut Class kontrol edecek